第五届--图像腐蚀和膨胀的C++的处理


//-------------------------------------------【腐蚀和膨胀的理解】---------------------------------------------------
//1--腐蚀--随着--腐蚀结构元素--的增大,小于结构元素的物体相继消失(被置为白色)
//2--所以说---腐蚀--可以滤波,选择适当大小和形状的结构元素,可以滤掉所有不能完全包含--结构元素的--噪声点
//3--腐蚀的缺点---在出去噪声的同时,对图像中的前景物体的形状也会有影响
//
//4--膨胀--常常用于将---原本断裂开来的同一物体桥接起来
//-----------------------------------------------------------------------------------------------------------------
/******************************************************************************************************************
*函数原型:void CImgProcess::Dilate(CImgProcess* pTo,int se[3][3])
*函数功能:3*3--结构元素的二值图像的--膨胀,只能处理二值图像
*参数:CImgProcess* pTo-------输出目标图像
*     se[3][3]-----3*3的结构元素,其数组元素的合法取值为:
*     1---前景
*     -1--不关系
*函数返回值:无
********************************************************************************************************************/
void CImgProcess::Dilate(CImgProcess* pTo,int se[3][3])
{
  int nHeight=GetHeight();
  int nWidth=GetWidthPixel();
  //[1]图像的循环变量
  int i,j;
  //[2]结构元素的循环变量
  int k,l;
  //[3]计算se关于中心的对称集
  int nTmp;
  for(i=0;i<2;i++)
  {
   for(j=0;j<3-i;j++)
   {
    nTmp=se[i][j];
    se[i][j]=se[2-i][2-j];
    se[2-i][2-j]=nTmp;
   }//j
  }//i
  //[4]清空目标输出的图像
  pTo->InitPixels(255);
  //[5]逐行扫描图像,为防止访问越界,四周留出一个像素宽的空边
  for(i=1;i<nHeight-1;i++)
  {
   for(j=1;j<nWidth-1;j++)
   {
    //[6]由于使用的是3*3的结构元素,为防止越界,不处理最上和最下的两行像素,以及最左和最右的两列像素
    for(k=0;k<3;k++)
    {
     for(l=0;l<3;l++)
     {
      if(se[k][l]==-1)//不关心
       continue;
      if(se[k][l]==1)
      {
       if(GetGray(j-1+l,i-1+k)==0)
       {
        //[7]原图像中对应结构元素的局部区域有一点为1,就将目标图像对应于结构元素中心的像素置为0
        pTo->SetPixel(j,i,RGB(0,0,0));
        break;
       }
      }
      else{
       AfxMessageBox("结构元素含有非法值!强检查后,重新设置");
       return;
      }
     }//l
    }//k
   }//j
  }//i
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值