联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 热评 >

Python Opencv实现图像轮廓识别功能

来源: 编辑: 时间:2019-10-15
导读: 本文实例为大家分享了python opencv识别图像轮廓的具体代码,供大家参考,具体内容如下要求:用矩形或者圆形框住图片中的云朵轮廓检测opencv-pyth......

本文实例为大家分享了python opencv识别图像轮廓的具体代码,供大家参考,具体内容如下

要求:用矩形或者圆形框住图片中的云朵

轮廓检测

opencv-python接口中使用cv2.findcontours函数来查找检测物体的轮廓。

import cv2
img = cv2.imread
# 灰度图像
gray = cv2.cvtcolor
# 二值化
ret, binary = cv2.threshold
img1, contours, hierarchy = cv2.findcontours
# 以圆形框出云朵
# for i in range):
# , radius = cv2.minenclosingcircle
# center = , int)
# radius = int
# img = cv2.circle, 2)
#以云朵边界轮廓框出云朵
cv2.drawcontours, 3)
cv2.imshow
cv2.waitkey

需要注意的是cv2.findcontours函数接受的参数为二值图,即黑白的,所以读取的图像要先转成灰度的,再转成二值图。

cv2.findcontours函数

函数的原型为:

cv2.findcontours 

返回两个值:contours,hierarchy。注:opencv3会返回三个值,分别是img, countours, hierarchy

参数说明












返回值

cv2.findcontours函数返回两个值,一个是轮廓本身,还有一个是每条轮廓对应的属性。

contour返回值

cv2.findcontours函数首先返回一个list,list中每个元素都是图像中的一个轮廓,用numpy中的ndarray表示。这个概念非常重要。在下面drawcontours中会看见。可以打印观察contours的数据类型。

print ) 
print ) 
print ) 

hierarchy返回值

该函数还可返回一个可选的hiararchy结果,这是一个ndarray,其中的元素个数和轮廓个数相同,每个轮廓contours[i]对应4个hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为负数。

轮廓的绘制

opencv中通过cv2.drawcontours在图像上绘制轮廓。

cv2.drawcontours 

第一个参数是指明在哪幅图像上绘制轮廓;
第二个参数是轮廓本身,在python中是一个list;
第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓。
后面的参数很简单。其中thickness表明轮廓线的宽度,如果是-1,则为填充模式。




opencv中通过cv2.minenclosingcircle可以帮我们找到一个对象的外接圆。它是所有能够包括对象的圆中面积最小的一个。

,radius = cv2.minenclosingcircle
center = ,int)
radius = int
img = cv2.circle,2)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

上一篇:Python学习之旅(二十三)
下一篇:没有了

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 凯发网址娱乐凯发网址娱乐-凯发网娱乐下载-凯发网娱乐官方网站 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top