【图像处理】用Prewitt方法检测边界

2025-10-28 06:54:17

1、先处理图片。

【图像处理】用Prewitt方法检测边界

【图像处理】用Prewitt方法检测边界

2、再使用第一个Prewitt算子处理图片:

pic=juanji(img,kernel1)

【图像处理】用Prewitt方法检测边界

3、用第二个算子处理图片:

pic=juanji(img,kernel2)

【图像处理】用Prewitt方法检测边界

4、但是,如果要把两个算子结合起来,就需要重新写代码。

u,v=img.shape

pic=img*1

for i in range(1,u-1):

    for j in range(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)

这样检测的结果比较完整。

【图像处理】用Prewitt方法检测边界

5、如果改为:

pic[i,j]=int((x**2+y**2)**(0.5))

那么检测的边界是一串虚线。

【图像处理】用Prewitt方法检测边界

6、改为:pic[i,j]=int((x*y)**(0.5))

【图像处理】用Prewitt方法检测边界

7、改为:pic[i,j]=int((x+y)*(0.5))

【图像处理】用Prewitt方法检测边界

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢