参考https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_canny/py_canny.html#canny
算法比较复杂,但是已经有现成算法API供调用,基本算法分三步:
滤波(高斯滤波消除噪声) -> 增强(使边界轮廓更加明显) -> 检测(选出边缘点)
程序主要使用函数: cv2.Canny(),如下
# coding: utf-8
import cv2
from matplotlib import pyplot as plt
if __name__ == "__main__":
# read image
origin = cv2.imread("test.png", cv2.IMREAD_COLOR)
# do proccessing
canny = cv2.Canny(origin, 100, 200)
# show image
cv2.imshow("origin", origin)
cv2.imshow("canny", canny)
# judge exit
if cv2.waitKey(0) == 27: # ESC to exit
cv2.destroyAllWindows()
效果如下