边缘提取 发表于 2017-09-23 | 分类于 Python | 代码 123456789101112131415import cv2import numpyimport argparseimg = cv2.imread('C:/Users/yiming/Desktop/python_try/opencv_first_try/sweater.jpg')cv2.imshow('haha',img)h,w = img.shape[:2]##high、wide像素值print(h,w)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)##将原图像转化为灰度图cv2.imshow('gray',gray)canny = cv2.Canny(gray,30,200)##30和200为边缘检测的阈值,小于30不是边界(黑),大于200是边界(白)。canny = numpy.uint8(numpy.absolute(canny))##canny矩阵绝对值化cv2.imshow('edge',canny) Canny边缘提取原理1、高斯模糊 2、计算梯度幅值和方向 3、非最大值抑制 4、双阈值 5、滞后边界跟踪 说明目前的代码只是用opencv库中的canny函数做了一下简单的边缘提取,并没有用上述的高斯模糊和滞后边界跟踪,以后有空了可以更新一下代码。 效果图因为之前做sitp的智能衣柜有一项是识别衣服,所以做了几个衣服的图。 可以看出canny算法的准确度还是很高的。