CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

【新手】数学形态学的腐蚀、膨胀、开运算、闭运算、击中、不击中、骨架化等变换中,结构元素分解能提高效率吗???

楼主sxshao(sxshao)2005-04-02 16:30:55 在 VC/MFC / 图形处理/算法 提问

【新手】数学形态学的腐蚀、膨胀、开运算、闭运算、击中、不击中、骨架化等变换中,结构元素分解能提高效率吗???  
   
  如:  
   
  0   1   1   1   0  
  1   1   1   1   1  
  1   1   @   1   1  
  1   1   1   1   1  
  0   1   1   1   0  
   
  =  
   
  1  
  @  
  1  
   
  +  
   
  1   @   1  
   
  +  
   
  0   1   0  
  1   @   1  
  0   1   0  
   
   
   
  问题点数:20、回复次数:4Top

1 楼sxshao(sxshao)回复于 2005-04-02 16:35:03 得分 0

腐蚀、膨胀的循环往往不需要全部走完就知道结果跳出来了。Top

2 楼sxshao(sxshao)回复于 2005-04-02 16:35:46 得分 0

////////////////////////////////////////////////////////////////////////  
  //BOOL   MakeErosion()        
  //----------------------------------------------------------------------  
  //基本功能:本函数对图像数据执行腐蚀操作。  
  //----------------------------------------------------------------------  
  //参数说明:int *nMask 结构元素数组指针  
  // int   nMaskLen 结构元素长度(以点数为计数单位)  
  // unsigned   char   *pOut 输出图像数据指针  
  // unsigned   char   *pIn 输入图像数据指针  
  // int   nWidthBytes 图像宽度(以字节表示)  
  // int   nWidth 图像宽度(以像素表示)  
  // int   nHeight 图像高度  
  //----------------------------------------------------------------------  
  //返         回:BOOL  
  // 成功返回TRUE,失败返回FALSE。  
  //----------------------------------------------------------------------  
  //注         意:此函数声明为保护型,只能在CMorphPro类中使用。  
  //----------------------------------------------------------------------  
  ////////////////////////////////////////////////////////////////////////  
  BOOL   CMorphPro::MakeErosion(int   *nMask,   int   nMaskLen,    
    unsigned   char   *pOut,   unsigned   char   *pIn,  
  int   nWidthBytes,   int   nWidth,   int   nHeight)  
  {  
  _Normalization(pIn,   nWidthBytes,   nWidth,   nHeight);  
   
  //若传入的图像数据为空,将无法完成操作,直接返回。  
  if(pOut   ==   NULL   ||   pIn   ==   NULL)   return   FALSE;  
   
  //定义变量  
  int   x,   y,   k;  
  unsigned   char   Mark;  
  CString   CStrMessage;  
   
  for   (k   =   0;   k   <   nMaskLen;   k++)  
  {  
  CStrMessage.Format("(x,y)   :   (%d,%d)",   nMask[2*k],   nMask[2*k+1]   )   ;  
  //AfxMessageBox(CStrMessage);  
  }  
   
  //执行腐蚀操作  
  for(   y   =   0;   y   <   nHeight;   y++   )  
  {  
  unsigned   char   *pOutTemp   =   pOut;  
  pOutTemp   +=     y   *   nWidthBytes;  
  for(   x   =   0;   x   <   nWidth;   x++   )  
  {  
  Mark   =   1;  
  for   (k   =   0;   k   <   nMaskLen;   k++)  
  {  
  //不能处理边界像素  
  if   ((x   +   nMask[2   *   k]   >=   0   )   &&  
  (x   +   nMask[2   *   k]   <   nWidth)   &&  
  (y   +   nMask[2   *   k   +   1]   >=   0)   &&  
  (y   +   nMask[2   *   k   +   1]   <   nHeight))  
  {  
  unsigned   char   Data;  
  //取与模板中位置相对应的像素值  
  unsigned   char   *pTemp   =   pIn;  
  pTemp   +=     y   *   nWidthBytes;  
  pTemp   +=   nMask[2   *   k   +   1]   *   nWidthBytes;  
  Data   =   pTemp[x   +   nMask[2   *   k]];  
  if(Data   !=   255)  
  {    
  Mark   =   0;  
  k   =   nMaskLen;  
  }  
  }  
  else  
  {  
  Mark   =   0;  
  k   =   nMaskLen;  
  }  
  }  
  if   (Mark   ==   1) pOutTemp[x]   =   255;  
  }  
  }  
   
  return   TRUE;  
  }  
  Top

3 楼huanyun(无妻徒刑)回复于 2005-04-03 13:40:40 得分 20

其实不一定的     实际要比较的话   还是使用算法测试精确数据吧  
  因为每做一次都要准备缓冲   而且要遍历图像    
  我的算法   自己测试的是   3*3   变为   3+3   并不能提高效率  
  5*5   变为   5+5   可以提高效率  
  7*7   变为   7+7   可以大幅度提高效率Top

4 楼sxshao(sxshao)回复于 2005-04-03 15:36:29 得分 0

3   *   3   /   (   3   +   3   )   =   3   /   2   =   1.5  
   
    5   *   5   /   (   5   +   5   )   =   5   /   2   =   2.5  
   
    7   *   7   /   (   7   +   7   )   =   7   /   2   =   3.5  
   
  Top

相关问题

  • 【新手】数学形态学的腐蚀、膨胀、开运算、闭运算、击中、不击中、骨架化等变换中,结构元素包不括包原点(0,0)有什么关系吗?
  • 【新手】数学形态学的腐蚀、膨胀、开运算、闭运算、击中、不击中、骨架化等变换中,结构元素包不括包原点(0,0)有什么关系吗?
  • MS VC 6 数学形态学 执行腐蚀操作 程序好像有问题,请高人指点 __________ __________ __________ __________
  • 模式识别与图象形态学的问题
  • 矩阵运算
  • 位运算
  • 运算符?
  • 大数运算
  • 位运算
  • ---------------日期运算-------------------

关键词

  • 图像
  • 结构
  • 指针
  • 数据
  • 运算
  • 击中
  • 腐蚀
  • nwidthbytes
  • 膨胀
  • 结构元素

得分解答快速导航

  • 帖主:sxshao
  • huanyun

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo