时间:2021-05-22
图像的轮廓检测,如计算多边形外界、形状毕竟、计算感兴趣区域等。
Contours : Getting Started
轮廓
简单地解释为连接所有连续点(沿着边界)的曲线,具有相同的颜色或强度.
轮廓是形状分析和物体检测和识别的有用工具
NOTE
findContours(image, mode, method[, contours[, hierarchy[, offset]]])
输出为: 修改后的图像,轮廓,层次结构
轮廓是所有轮廓的列表.每个单独的轮廓是对象边界点的坐标.
轮廓检索模式 含义 cv2.RETR_EXTERNAL 只检测外轮廓 cv2.RETR_LIST 提取所有轮廓并将其放入列表,不建立等级关系 cv2.RETR_CCOMP 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层 cv2.RETR_TREE 建立一个等级树结构的轮廓
轮廓逼近方法 含义 cv2.CHAIN_APPROX_NONE 存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即max(abs(x1-x2),abs(y2-y1))==1 cv2.CHAIN_APPROX_SIMPLE 压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息 cv2.CHAIN_APPROX_TC89_L1 或 cv2.CHAIN_APPROX_TC89_KCOS 应用Teh-Chin链近似算法
代码:
import cv2import numpy as npimg = cv2.imread('img.jpg')imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(imgray, 127, 255, 0)im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)绘制轮廓
cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]])
要绘制图像中的所有轮廓:
cv.drawContours(img,contours,-1,(0,255,0),3)
要绘制单个轮廓,比如第4个轮廓:
cv.drawContours(img,contours,3,(0,255,0),3)
但大多数情况下,绘制第4个轮廓,以下方法将非常有用:
cnt = contours[4]
cv.drawContours(img,[cnt],0,(0,255,0),3)
代码:
import cv2import numpy as npimg = cv2.imread('img7.png')imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(imgray, 127, 255, 0)im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)cnt = contours[0]cv2.drawContours(img,[cnt],0,(0,255,0),3)cv2.imshow('src',img)cv2.waitKey()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Opencv处理图像之轮廓提取,使用cvfindContours对图像进行轮廓检测,供大家参考,具体内容如下#include#include
本文实例为大家分享了Opencv轮廓外背景颜色改变的具体代码,供大家参考,具体内容如下自行学习弄得简单代码,使用了图像中的轮廓发现以及提取,再绘制出来,改变轮廓
最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。根据网上的教程,PythonOpenCV的轮廓提取函数会
前两篇博文分别介绍了图像的边缘检测和轮廓检测,本文接着介绍图像的轮廓检测和轮廓外接矩形:一、代码部分://extract_contours.cpp:定义控制台应
首先大家可以对OpenCV有个初步的了解,可以参考:简单了解OpenCV轮廓(Contours),指的是有相同颜色或者密度,连接所有连续点的一条曲线。检测轮廓的