扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:刘涛 来源:yesky 2007年10月22日
关键字: Visual C++ 图像处理
////////////////////////////////二值图像腐蚀操作函数 BOOL ImageErosion(BYTE *pData,int Width,int Height) {//pData为图像数据的指针,Width和Height为图像的宽和高; BYTE* pData1; int m,n,i,j,sum,k,sum1; BOOL bErosion; if(pData==NULL) { AfxMessageBox("图像数据为空,请读取图像数据"); return FALSE; } //申请空间,pData1存放处理后的数据; pData1=(BYTE*)new char[WIDTHBYTES(Width*8)*Height]; if(pData1==NULL) { AfxMessageBox("图像缓冲数据区申请失败,请重新申请图像数据缓冲区"); return FALSE ; } memcpy(pData1,pData,WIDTHBYTES(Width*8)*Height); for(i=10;i<Height-10;i++) for(j=32;j<Width-32;j++) { bErosion=FALSE; sum=*(pData+WIDTHBYTES(Width*8)*i+j); if(sum==255) { //求像素点八邻域的灰度均值; for(m=-1;m<2;m++) { for(n=-1;n<2;n++) { sum1=*(pData+WIDTHBYTES(Width*8)*(i+m)+j+n); if(sum1==0) { *(pData1+WIDTHBYTES(Width*8)*i+j)=0; bErosion=TRUE; break; } } if(bErosion) { bErosion=FALSE; break; } } } } memcpy(pData,pData1,WIDTHBYTES(Width*8)*Height); return TRUE; } ////////////////////////////////////二值图像的膨胀操作 BOOL ImageDilation(BYTE *pData,int Width,int Height) { BYTE* pData1; int m,n,i,j,sum,k,sum1; BOOL bDilation; if(pData==NULL) { AfxMessageBox("图像数据为空,请读取图像数据"); return FALSE; } //申请空间,pData1存放处理后的数据; pData1=(BYTE*)new char[WIDTHBYTES(Width*8)*Height]; if(pData1==NULL) { AfxMessageBox("图像缓冲数据区申请失败,请重新申请图像数据缓冲区"); return FALSE ; } memcpy(pData1,pData,WIDTHBYTES(Width*8)*Height); for(i=10;i<Height-10;i++) for(j=32;j<Width-32;j++) { bDilation=FALSE; sum=*(pData+WIDTHBYTES(Width*8)*i+j); if(sum==0) { //求像素点八邻域的灰度值; for(m=-1;m<2;m++) { for(n=-1;n<2;n++) { sum1=*(pData+WIDTHBYTES(Width*8)*(i+m)+j+n); if(sum1==255) { *(pData1+WIDTHBYTES(Width*8)*i+j)=255; bDilation=TRUE; break; } } if(bDilation) { bDilation=FALSE; break; } } } } memcpy(pData,pData1,WIDTHBYTES(Width*8)*Height); return TRUE; } |
(a)噪声图 |
(b)开运算处理 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者