欢迎来到天天文库
浏览记录
ID:12094707
大小:69.50 KB
页数:5页
时间:2018-07-15
《图像锐化边缘检测》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、锐化处理(高通滤波处理)Sobel算子:Laplace算子:对应数学表达式:Acute_RGB_Image(int*buffer){intx,y;for(y=0;y2、]+buffer[(y+1)*ImageWidth+x])/4;if(buffer[ImageWidth*y+x]>255)buffer[ImageWidth*y+x]=255;elseif(buffer[ImageWidth*y+x]<0)buffer[ImageWidth*y+x]=0;}}2、改进型voidacute(Uint8*in_data){inti,j;intf,g;for(i=1;i<576-1;i++)for(j=1;j<360-1;j++){f=*(Uint8*)(in_dat3、a+(i*720+j)*2+1);f=f*9;g=*(Uint8*)(in_data+((i+1)*720+j)*2+1)+*(Uint8*)(in_data+((i+1)*720+j-1)*2+1)+*(Uint8*)(in_data+((i+1)*720+j+1)*2+1)+*(Uint8*)(in_data+((i-1)*720+j)*2+1)+*(Uint8*)(in_data+((i-1)*720+j-1)*2+1)+*(Uint8*)(in_data+((i-1)*720+j+1)*24、+1)+*(Uint8*)(in_data+(i*720+j+1)*2+1)+*(Uint8*)(in_data+(i*720+j-1)*2+1);f=f-g;if(f>255)f=255;if(f<0)f=0;*(Uint8*)(in_data+(i*720+j+360)*2+1)=f;}GrayImage(in_data);}锐化后的图像轮廓变得明显,且噪声变得强烈。一、图像的边缘检测a.Roberts算子Roberts算子是一种利用局部差分算子寻找边缘的算子.它由下式给出:(式8.1)式中,5、f(x,y)是具有整数像素坐标的输入图像。Roberts算子的检测模板,如图8.3所示。它是算子,采用对角线方向相邻像素之差近似梯度幅值检测边缘。它计算简单,对具有陡峭边缘的低噪声图像响应最好。图8.3Robert算子的检测模板b.Sobel算子Sobel的基本思想是:在以f(x,y)为中心的3*3邻域上计算x和y方向的偏导数。Sobel算子的检测模板,如图8.4所示。图8.4Sobel算子的检测模板c.Prewitt算子两个卷积核形成的Prewitt算子,如图8.3所示.与Sobel算子一样,在6、图像中的每个像素位置都用这两个核作卷积,取其最大值作为该点的输出值,运算结果是一幅边界幅度图像。Prewitt算子的检测模板,如图8.5所示。图8.5Prewitt算子的检测模板边缘检测算子还包括LOG算子和laplace算子,实验者可任意选择两种不同边缘检测算子,观察其检测性能差异的梯度分别为:总梯度幅度实验中的阈值设为120。Edge_Grey_Image(){intx,y;intdelta_x,delta_y;for(y=0;y7、Width;x++){delta_x=abs(buffer_grey[ImageWidth*(y-1)+x+1]+buffer_grey[ImageWidth*y+x+1]+buffer_grey[ImageWidth*(y+1)+x+1]-buffer_grey[ImageWidth*(y-1)+x-1]-buffer_grey[ImageWidth*y+x-1]-buffer_grey[ImageWidth*(y+1)+x-1])/3;delta_y=abs(buffer_grey[Image8、Width*(y-1)+x-1]+buffer_grey[ImageWidth*(y-1)+x]+buffer_grey[ImageWidth*(y-1)+x+1]-buffer_grey[ImageWidth*(y+1)+x-1]-buffer_grey[ImageWidth*(y+1)+x]-buffer_grey[ImageWidth*(y+1)+x+1])/3;if((delta_x+delta_y)>=Threshhold)buffer_org[ImageWidth*y+
2、]+buffer[(y+1)*ImageWidth+x])/4;if(buffer[ImageWidth*y+x]>255)buffer[ImageWidth*y+x]=255;elseif(buffer[ImageWidth*y+x]<0)buffer[ImageWidth*y+x]=0;}}2、改进型voidacute(Uint8*in_data){inti,j;intf,g;for(i=1;i<576-1;i++)for(j=1;j<360-1;j++){f=*(Uint8*)(in_dat
3、a+(i*720+j)*2+1);f=f*9;g=*(Uint8*)(in_data+((i+1)*720+j)*2+1)+*(Uint8*)(in_data+((i+1)*720+j-1)*2+1)+*(Uint8*)(in_data+((i+1)*720+j+1)*2+1)+*(Uint8*)(in_data+((i-1)*720+j)*2+1)+*(Uint8*)(in_data+((i-1)*720+j-1)*2+1)+*(Uint8*)(in_data+((i-1)*720+j+1)*2
4、+1)+*(Uint8*)(in_data+(i*720+j+1)*2+1)+*(Uint8*)(in_data+(i*720+j-1)*2+1);f=f-g;if(f>255)f=255;if(f<0)f=0;*(Uint8*)(in_data+(i*720+j+360)*2+1)=f;}GrayImage(in_data);}锐化后的图像轮廓变得明显,且噪声变得强烈。一、图像的边缘检测a.Roberts算子Roberts算子是一种利用局部差分算子寻找边缘的算子.它由下式给出:(式8.1)式中,
5、f(x,y)是具有整数像素坐标的输入图像。Roberts算子的检测模板,如图8.3所示。它是算子,采用对角线方向相邻像素之差近似梯度幅值检测边缘。它计算简单,对具有陡峭边缘的低噪声图像响应最好。图8.3Robert算子的检测模板b.Sobel算子Sobel的基本思想是:在以f(x,y)为中心的3*3邻域上计算x和y方向的偏导数。Sobel算子的检测模板,如图8.4所示。图8.4Sobel算子的检测模板c.Prewitt算子两个卷积核形成的Prewitt算子,如图8.3所示.与Sobel算子一样,在
6、图像中的每个像素位置都用这两个核作卷积,取其最大值作为该点的输出值,运算结果是一幅边界幅度图像。Prewitt算子的检测模板,如图8.5所示。图8.5Prewitt算子的检测模板边缘检测算子还包括LOG算子和laplace算子,实验者可任意选择两种不同边缘检测算子,观察其检测性能差异的梯度分别为:总梯度幅度实验中的阈值设为120。Edge_Grey_Image(){intx,y;intdelta_x,delta_y;for(y=0;y7、Width;x++){delta_x=abs(buffer_grey[ImageWidth*(y-1)+x+1]+buffer_grey[ImageWidth*y+x+1]+buffer_grey[ImageWidth*(y+1)+x+1]-buffer_grey[ImageWidth*(y-1)+x-1]-buffer_grey[ImageWidth*y+x-1]-buffer_grey[ImageWidth*(y+1)+x-1])/3;delta_y=abs(buffer_grey[Image8、Width*(y-1)+x-1]+buffer_grey[ImageWidth*(y-1)+x]+buffer_grey[ImageWidth*(y-1)+x+1]-buffer_grey[ImageWidth*(y+1)+x-1]-buffer_grey[ImageWidth*(y+1)+x]-buffer_grey[ImageWidth*(y+1)+x+1])/3;if((delta_x+delta_y)>=Threshhold)buffer_org[ImageWidth*y+
7、Width;x++){delta_x=abs(buffer_grey[ImageWidth*(y-1)+x+1]+buffer_grey[ImageWidth*y+x+1]+buffer_grey[ImageWidth*(y+1)+x+1]-buffer_grey[ImageWidth*(y-1)+x-1]-buffer_grey[ImageWidth*y+x-1]-buffer_grey[ImageWidth*(y+1)+x-1])/3;delta_y=abs(buffer_grey[Image
8、Width*(y-1)+x-1]+buffer_grey[ImageWidth*(y-1)+x]+buffer_grey[ImageWidth*(y-1)+x+1]-buffer_grey[ImageWidth*(y+1)+x-1]-buffer_grey[ImageWidth*(y+1)+x]-buffer_grey[ImageWidth*(y+1)+x+1])/3;if((delta_x+delta_y)>=Threshhold)buffer_org[ImageWidth*y+
此文档下载收益归作者所有