欢迎来到天天文库
浏览记录
ID:30429236
大小:97.75 KB
页数:46页
时间:2018-12-29
《数字图像处理领域的二十四个典型算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数字图像处理领域的二十四个典型算法2数字图像处理领域的二十四个典型算法(2)2011-04-2008:52前期回顾:在上一章,数字图像处理领域的二十四个典型算法及vc实现、第一章中,我们介绍和实现了256色转灰度图、Walsh变换、二值化变换、阈值变换、傅立叶变换、离散余弦变换等数字图像处理领域中的6个典型算法。这一篇接上一篇,继续阐述数字图像处理领域的典型算法。注,有兴趣具体深入研究的朋友可参考国内外有关此类图像处理算法的优秀论文。七、高斯平滑算法描述:在图像预处理中,对图像进行平滑,去除噪声,恢复原始图像是一个重要内容。本文设计了一个平滑尺度和模板
2、大小均可以改变的高斯滤波器,用它对多幅加入各种噪声后的图像进行平滑,经过对各个结果图像的对比可知高斯滤波对服从正态分布的噪声去除效果比较好,并且相比各个不同参数,在平滑尺度为2,模板大小为7时效果最佳。程序实现:函数名称:Template:参数:HDIBhDIB-图像的句柄double*tem-指向模板的指针inttem_w-模板的宽度inttem_h-模板的高度doublexishu-模板的系数功能:对图像进行模板操作说明:为处理方便起见,模板的宽度和高度都应为奇数HDIBTemplate(HDIBhDIB,double*tem,inttem_w,i
3、nttem_h,doublexishu){//统计中间值doublesum;//指向图像起始位置的指针BYTE*lpDIB=(BYTE*):GlobalLock((HGLOBAL)hDIB);//指向象素起始位置的指针BYTE*pScrBuff=(BYTE*):FindDIBBits((char*)lpDIB);//获取图像的颜色信息intnumColors=(int):DIBNumColors((char*)lpDIB);//如果图像不是256色返回if(numColors!=256){//解除锁定:GlobalUnlock((HGLOBAL)hDI
4、B);//返回return(hDIB);}//将指向图像象素起始位置的指针,赋值给指针变量BYTE*oldbuf=pScrBuff;//循环变量inti,j,m,n;intw,h,dw;//获取图像的宽度w=(int):DIBWidth((char*)lpDIB);//获取图像的高度h=(int):DIBHeight((char*)lpDIB);//计算图像每行的字节数dw=(w+3)/4*4;//建立一个和原图像大小相同的25色灰度位图HDIBnewhDIB=NewDIB(w,h,8);//指向新的位图的指针BYTE*newlpDIB=(BYTE*)
5、:GlobalLock((HGLOBAL)newhDIB);//指向新的位图的象素起始位置的指针BYTE*destBuf=(BYTE*)FindDIBBits((char*)newlpDIB);//将指向新图像象素起始位置的指针,赋值给指针变量BYTE*newbuf=destBuf;//对图像进行扫描//行for(i=0;ih;i++){//列for(j=0;jw;j++){//为统计变量赋初始值sum=0;//对于图像的4个边框的象素保持原灰度不变if(j((tem_w-1)/2)
6、
7、j(w-(tem_w+1)/2)
8、
9、i((tem_h-1)/2)
10、
11、
12、i(h-(tem_h+1)/2))*(newbuf+i*dw+j)=*(oldbuf+i*dw+j);//对于其他的象素进行模板操作else{//将点(i,j)点作为模板的中心for(m=i-((tem_h-1)/2);m=i+((tem_h-1)/2);m++){for(n=j-((tem_w-1)/2);n=j+((tem_w-1)/2);n++)//将以点(i,j)为中心,与模板大小相同的范围内的象素与模板对用位置的系数//进行相乘并线形叠加sum+=*(oldbuf+m*dw+n)*tem[(m-i+((tem_h-1)/2))*tem_w+
13、n-j+((tem_w-1)/2)];}//将结果乘上总的模板系数sum=(int)sum*xishu;//计算绝对值sum=fabs(sum);//如果小于0,强制赋值为0if(sum0)sum=0;//如果大于255,强制赋值为255if(sum255)sum=255;//将计算的结果放到新的位图的相应位置*(newbuf+i*dw+j)=sum;}}}//解除锁定:GlobalUnlock((HGLOBAL)hDIB);//返回新的位图的句柄return(newhDIB);}变换效果(图像右边部分即为某一算法的变换效果,下同八、图像平移算法描述:
14、我想,图像平移,就不必过多介绍了。无非就是通过坐标的增或减的变化,来达到图像在屏幕上的左移、右
此文档下载收益归作者所有