ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Opencv图像处理3-边缘检测

2021-06-17 19:32:04  阅读:170  来源: 互联网

标签:img show 检测 cv2 sobelxy Opencv 图像处理 sobelx cv


图像梯度-Sobel算子

img = cv2.imread('pie.png',cv2.IMREAD_GRAYSCALE)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()


sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3) #水平方向  

cv_show(sobelx,'sobelx')

白到黑是正数,黑到白就是负数了,所有的负数会被截断成0,所以要取绝对值

sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)# 取绝对值
cv_show(sobelx,'sobelx')

sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)#垂直方向
sobely = cv2.convertScaleAbs(sobely)  
cv_show(sobely,'sobely')
sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
cv_show(sobelxy,'sobelxy')

不建议直接计算XY方向梯度

sobelxy=cv2.Sobel(img,cv2.CV_64F,1,1,ksize=3)
sobelxy = cv2.convertScaleAbs(sobelxy) 
cv_show(sobelxy,'sobelxy')

图像梯度-Scharr算子

scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx = cv2.convertScaleAbs(scharrx)   
scharry = cv2.convertScaleAbs(scharry)  
scharrxy =  cv2.addWeighted(scharrx,0.5,scharry,0.5,0) 

图像梯度-Laplacian算子

laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)   

(SOBEL SCHARR LAPLACIAN)

Canny边缘检测-其他算法的提升版本

Canny边缘检测基本思想

- 1) 使用高斯滤波器,以平滑图像,滤除噪声。

- 2) 计算图像中每个像素点的梯度强度和方向。

- 3) 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。  

- 4) 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。

- 5) 通过抑制孤立的弱边缘最终完成边缘检测。

线性插值法

1、线性插值法中 C为目标点 确定了梯度模值和方向

2、找寻临近值 并比较 抑制较小值点

3、线性插值 选取临近点求亚像素点

简化方法-  梯度和边界是垂直的

1、直接由梯度方向 在八个方向选择较近的两个点

2、然后比较目标点与临近点梯度值 

对保留的边界点进行判断筛选

img=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,80,150)
v2=cv2.Canny(img,50,100)

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


img=cv2.imread("car.png",cv2.IMREAD_GRAYSCALE)
cv_show(img,'img')

img=cv2.imread("car.png",cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,120,250)
v2=cv2.Canny(img,50,100)

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

标签:img,show,检测,cv2,sobelxy,Opencv,图像处理,sobelx,cv
来源: https://blog.csdn.net/qq_35912099/article/details/117995633

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有