Prewitt算子也由两部分组成,一是横向检测算子,[1,0,-1巳呀屋饔,1,0,-1,1,0,-1]二是纵向检测算子:[1,1,1,0,0,0,-1,-1,-1]本文,就是用这两个算子来检测图像的边界。
工具/原料
电脑
python
方法/步骤
1、先处理图片。
2、再使用第一个Prewitt算子处理图片:pic=juanji(img,kernel1)
3、用第二个算子处理图片:pic=juanji(img,kernel2)
4、但是,如果要把两个算子结合起来,就需要重新写代码。u,v=img.shapep坡纠课柩ic=img*1foriinra荏鱿胫协nge(1,u-1):forjinrange(1,v-1):z=np.reshape(img[i-1:i+2,j-1:j+2],(1,-1))[0]x=abs(np.dot(z,k1))y=abs(np.dot(z,k2))pic[i,j]=max(x,y)这样检测的结果比较完整。
5、如果改为:pic[i,j]=int((x**2+y**2)**(0.5))那么检测的边界是一串虚线。
6、改为:pic[i,j]=int((x*y)**(0.5))
7、改为:pic[i,j]=int((x+y)*(0.5))