python图像边缘检测课设_Python+OpenCV3.3图像处理(六)边缘检测,形态学操作

本文介绍了使用Python和OpenCV3.3进行图像边缘检测,特别是Canny算法的应用,通过调整阈值参数实现不同检测效果。此外,还详细讲解了基本的形态学操作,如腐蚀、膨胀以及开运算和闭运算,阐述了它们的原理和作用,并指出在图像处理中的应用场景。
摘要由CSDN通过智能技术生成

大名鼎鼎的边缘检测,今天终于上手玩了一把。主要就是canny算法,代码如下:

##边缘检测

v1 = cv.Canny(img,120,250)

v2 = cv.Canny(img,50,250)

res = np.hstack((v1,v2))

cv_show('res',res)

只需要调用canny,就可以实现很好的标远检测的效果,通过调整数值参数,可以简单实现检测的严格程度。。。。

关于2个阈值参数:低于阈值1的像素点会被认为不是边缘;

高于阈值2的像素点会被认为是边缘;

在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘。

基本的形态学操作,腐蚀和膨胀:

1.腐蚀,cv2.erode(img,kernel,iterations=1),三个参数,图片,用的核以及迭代的次数。

所谓的腐蚀,可以简单的理解为占主体的像素会吃掉次要的像素,就像被腐蚀掉了。

2.膨胀,cv2.dilate(img,kernel,iterations = 1),同上,可以看成是腐蚀的逆操作,以小吃大。

开运算(礼帽):先腐蚀,再膨胀。cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

闭运算(黑帽):先膨胀,再腐蚀.。cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)

划重点!!!:

1.结构元素和卷积模板的区别在于,膨胀是以集合运算为基础的,卷积是以算数运算为基础的。

(OpenCV里面的腐蚀膨胀都是针对白色目标区域的)

2.膨胀:用结构元素的中心点对准当前正在遍历的这个像素,

然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最大值,用这个最大值替换当前像素值,给图像中的对象边界添加像素,使二值图像扩大一圈

3.腐蚀:用结构元素的中心点对准当前正在遍历的这个像素,

然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值,删除对象边界的某些像素,使二值图像减小一圈

4.因为开运算带来的结果是放大了裂缝或者局部低亮度的区域,因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作和选择的核的大小相关。顶帽运算往往用来分离比邻近点亮些的斑块。当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。

5.黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域,且这一操作和选择的核的大小相关。所以,黑帽运算用来分离比邻近点暗一些的斑块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值