图像处理-图像边缘处理
原创
©著作权归作者所有:来自51CTO博客作者mb5dbc2345bf8de的原创作品,请联系作者获取转载授权,否则将追究法律责任
(考完六级补上)
1、Sobel算子
2、Laplacian算子
3、Canny算子
edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])
- 参数一:需要处理的图像
- 参数二:最小阈值MinThresh
- 参数三:最大阈值MaxThresh
介于MinThresh与MaxThresh之间的被识别为边界
4、运行结果
4.1 sobel
4.2 Laplacian
5、完整代码
def EdgeProcess(image):
Result1_x = cv.Sobel(image,ddepth=-1,dx=1,dy=0)
Result1_y = cv.Sobel(image,ddepth=-1,dx=0,dy=1)
#x方向一阶边缘
SobelResult_x = cv.convertScaleAbs(Result1_x)
#y方向一阶边缘
SobelResult_y = cv.convertScaleAbs(Result1_y)
#整幅图像一阶边缘
SobelResult_xy = cv.bitwise_or(SobelResult_x,SobelResult_y)
#SobelResult_xy 是三通道图像
SobelResult_Result = cv.hconcat((SobelResult_x,SobelResult_y,SobelResult_xy))
cv.imshow("SobelResult",SobelResult_Result)
cv.waitKey()
#拉普拉斯算子
Result2 = cv.Laplacian(image,ddepth=-1,ksize=3)
LaplacianResult = cv.convertScaleAbs(Result2)
cv.imshow("Laplacian",LaplacianResult)
cv.waitKey()
return;