OpenCV图像轮廓

© Fu Xianjun. All Rights Reserved.

文章目录

  • 一、图像轮廓概念
  • 二、图像轮廓代码
  • 三、结果显示


提示:以下是本篇文章正文内容,下面案例可供参考

一、图像轮廓概念

轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。
查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中。

二、图像轮廓代码

OpenCV图像轮廓_第1张图片

代码如下(示例):

import cv2
import numpy as np
img = cv2.imread('shape.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,binary = cv2.threshold(gray,220,255,cv2.THRESH_BINARY)
contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,\
                                     cv2.CHAIN_APPROX_NONE)
n = len(contours)
contoursImg=[]
for i in range(n):
    temp = np.zeros(img.shape,np.uint8)
    contoursImg.append(temp)
    contoursImg[i]=cv2.drawContours(contoursImg[i],contours,\
                                    i,(255,255,255),3)
    cv2.imshow("contours[" + str(i)+"]",contoursImg[i])
cv2.waitKey()
cv2.destroyAllWindows()

三、结果显示

OpenCV图像轮廓_第2张图片
OpenCV图像轮廓_第3张图片
OpenCV图像轮廓_第4张图片


你可能感兴趣的:(opencv,python)