如何实现Python中的Sobel边缘检测算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计167个文字,预计阅读时间需要1分钟。
使用Python进行图像边缘检测的版本如下:
pythonimport cv2import numpy as np
读取图像image=cv2.imread('path_to_image.jpg')
转换为灰度图像gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
使用Canny算法进行边缘检测edges=cv2.Canny(gray, 100, 200)
显示结果cv2.imshow('Edges', edges)cv2.waitKey(0)cv2.destroyAllWindows()
对图像进行边缘检测python版本:
# coding=gbkimport cv2
img = cv2.imread("1.jpg", 0)
x = cv2.Sobel(img,cv2.CV_16S,1,0)
y = cv2.Sobel(img,cv2.CV_16S,0,1)
absX = cv2.convertScaleAbs(x) # 转回uint8
absY = cv2.convertScaleAbs(y)
dst = cv2.addWeighted(absX,0.5,absY,0.5,0)
# cv2.imshow("absX", absX) #x方向
# cv2.imshow("absY", absY) #y方向
cv2.imshow("Result", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行如下:
本文共计167个文字,预计阅读时间需要1分钟。
使用Python进行图像边缘检测的版本如下:
pythonimport cv2import numpy as np
读取图像image=cv2.imread('path_to_image.jpg')
转换为灰度图像gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
使用Canny算法进行边缘检测edges=cv2.Canny(gray, 100, 200)
显示结果cv2.imshow('Edges', edges)cv2.waitKey(0)cv2.destroyAllWindows()
对图像进行边缘检测python版本:
# coding=gbkimport cv2
img = cv2.imread("1.jpg", 0)
x = cv2.Sobel(img,cv2.CV_16S,1,0)
y = cv2.Sobel(img,cv2.CV_16S,0,1)
absX = cv2.convertScaleAbs(x) # 转回uint8
absY = cv2.convertScaleAbs(y)
dst = cv2.addWeighted(absX,0.5,absY,0.5,0)
# cv2.imshow("absX", absX) #x方向
# cv2.imshow("absY", absY) #y方向
cv2.imshow("Result", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行如下:

