2、h+x-1]+buffer[(y-1)*ImageWidth+x]+buffer[y*ImageWidth+x+1]+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;}}运行结果:锐化前锐化后分析:从上面两幅图可以看出锐化后的图像轮廓变得明显,且噪声变得强烈。3、汇编程序及运行结果程序:
3、ImageAcuteSub(ImageWidth,ImageHeight,buffer_red);ImageAcuteSub(ImageWidth,ImageHeight,buffer_green);ImageAcuteSub(ImageWidth,ImageHeight,buffer_blue);.mmregs.def_ImageAcuteSub.text_ImageAcuteSub:movt0,brc1;IMAGEWIDTHmovt1,brc0;IMAGEHEIGHTrptby_looprptbx_loopmov*ar0
4、(#1),ac1;f(x+1,y)add*ar0(#-1),ac1;f(x-1,y)add*ar0(#-250),ac1;f(x,y-1)add*ar0(#250),ac1;f(x,y+1)sftsac1,#-2mov*ar0<<#1,ac0;2f(x,y)subac1,ac0bccbranch1,ac0<0sub#255,ac0,ac1bccbranch2,ac1>0movac0,*ar0+bx_loopbranch1:mov#0,*ar0+bx_loopbranch2:mov#255,*ar0+x_loop:nopy_l
5、oop:nopRET运行结果:锐化前锐化后分析:可以看出汇编的结果和C程序的结果是一致的。二、图像的边缘检测1、实验原理x方向和y方向的梯度分别为:101111fx101fy1001030131111总梯度幅度ffxfy
6、fx
7、31f(x1,y1)f(x1,y)f(x1,y1)f(x1,y1)f(x1,y)f(x1,y1)
8、fy
9、13f(x1,y1)f(x,y1)f(x1,y1)f(x1,y1)f(x,y1)f(x1,y1)g(x,y)1iffT0else实验中的阈值设为120。2、C程序及运行结果程序:Edge_Grey_
10、Image(){intx,y;intdelta_x,delta_y;for(y=0;y11、r_grey[ImageWidth*(y+1)+x-1])/3;delta_y=abs(buffer_grey[ImageWidth*(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_
12、y)>=Threshhold)buffer_org[ImageWidth*y+x]=255;elsebuffer_org[ImageWidth*y+x]=0;}}运行结果:边缘处理前边缘处理后分析:从上面两幅图可以看出,原图像的边缘经过处理后可以很好的用白线来勾勒出,没有边缘的地方都用黑色