findcontours对轮廓编号后,怎么使某两个满足条件的轮廓合并成一个?

最近刚学OPENCV做毕业设计,请问下,用findcontours组织的轮廓不是会有编号吗,我要怎么将其中满足某些条件的两个轮廓合并?比如我要求每个轮廓的外接矩形,假使会存在两个轮廓相邻的情况,我要将这两个矩形的轮廓合并成一个然后求他们点集的外接矩形表示出来。我应该怎么合并轮廓?
我画了个图如下
图片说明图片说明

c++
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenCV中findcontours函数查找轮廓汇总
OpenCV3版本中:hierarchy[i][0]~hierarchy[i][3] 中,0代表与当前轮廓平级的后一个轮廓的的索引编号、1代表与当前轮廓平级的前一个轮廓的索引编号、2代表当前轮廓的子轮廓的索引编号、3代表当前轮廓的父轮廓的索引编号。如果当前轮廓没有对应的平级后一个轮廓、平级前一个轮廓、子轮廓或父轮廓的话,则hierarchy[i][0] ~hierarchy[i][3]的相应位被...
OpenCV入门九:使用findContours()查找图片轮廓线,并将轮廓线坐标点输出
使用findContours()查找图片轮廓线,并将轮廓线坐标点输出,访问二维vector,使用迭代器和下标两种方式 #include #include #include #include #include #include #include using namespace cv; using namespace std; int main() { //载入原始图,且必
OpenCV中findcontours函数hierarchy轮廓层级详解
最近在查阅OpenCV轮廓处理函数方面时,我发现有部分文章对findcontours函数中轮廓层级提取的描述有错误,特写一篇有关轮廓提取方面的文章(仅仅介绍容易出错的hierarchy层级轮廓)。 函数原型为:findContours(image,contours,hierarchy,mode,method,Point());注意函数重载! 以下,利用mode=CV_RETR_TREE,进行h...
OpenCV中findContours轮廓提取一个边缘只对应的一个轮廓
OpenCV中findContours轮廓提取一个边缘只对应的一个轮廓众所周知,图像查找轮廓可以用findContours函数解决,但是不知道大家发现一个问题没有,有时候输入图像,得到的结果会出现图像中一条边缘有查找到两个轮廓。当然只提取最外轮廓是不会出现重复情况,但设置提取所有轮廓会出现两个轮廓,对于利用得到的轮廓进一步处理带来不必要的麻烦。现在网上很多讲解findContours()函数都是讲解
OpenCV findContours函数边缘近似方法
在使用OpenCV的过程中,findContours是相对使用比较多的,在之前的博客中,介绍了vector<vector<Point> > contours容器: http://blog.csdn.net/chaipp0607/article/details/52858661 查找轮廓时内轮廓与外轮廓: http://blog.csdn.net/chaipp0607/article/detail
opencv findcontour查找最大的内轮廓
问题是怎么来的呢        比如输入一幅图像,往往需要我们找最大的轮廓,如果是仅仅是查找最大的轮廓,那么问题也比较简单了,直接找出所有的轮廓,然后根据轮廓的面积,遍历查找出最大的轮廓即可。如果是找最大的外轮廓,那么问题也比较简单,因为findContours(image_contour_outside, contours_out, hierarchy_out, RETR_EXTERNAL,
OpenCV之findContours获取轮廓(Python版)
参考:https://blog.csdn.net/loovelj/article/details/78739790 OpenCV自带寻找轮廓的函数,流程是:获取灰度图→图片二值化→寻找轮廓 直接上代码(Python版) import cv2 img = cv2.imread('12.jpeg') gray = cv2.cvtColor ( img , cv2.COLOR_BGR2GRAY...
裁剪原图像,得到ROI区域的矩形图像 (findContours()寻找轮廓,图像裁剪) OpenCV
我知道之前用直方图方差找最佳曝光值的算法为什么有问题了。。。 因为我新增了ROI区域裁剪,是基于轮廓提取找到ROI区域的。而我在测试的时候,黑色背景板不够大,实际拍摄的图片最外面的轮廓其实是黑色背景板的,没有成功把ROI区域裁剪出来。 本博文的代码,我用自己画的图片,能够得到正确的裁剪后的ROI图片。而用测试时相机拍摄的图片,得到的裁剪结果却与原图像几乎一模一样。 当然,裁剪后的图片中仍含有...
【OpenCV】findContours()和drawContours轮廓的查找和绘制
函数DrawContours用于绘制出findContours所找到的多个轮廓。 void drawContours(InputOutputArray image,InputArrayOfArrays contours,int contourIdx,const Scalar&amp;amp;amp;amp;amp; colot,int thickness=1,int lineType=8,InputArray hierarchy...
【opencv】findContours轮廓检测与画轮廓drawContours
画不多说,直接上代码,代码解释已经够详细了#include #include using namespace cv; using namespace std; /*因为关于关于边缘检测可以检测出边界的像素,但是他并没有将轮廓作为一个整体, 所以这里介绍的轮廓检测就是把这些边缘像素组装成轮廓,因此轮廓检测前提是二值图像*/ int main() { Mat srcImage, srcImage
opencv2,找轮廓,用周长筛选
//---------找轮廓-------- Mat f_c=dst_d2.clone(); imshow("f_cc",f_c); vector>contours; vectorhierarchy; findContours(f_c,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_NONE);//复杂:输入图像、轮廓数组、分层表示、以树状
使用OpenCV的findContours获取轮廓并切割(python)
1 获取轮廓OpenCV2获取轮廓主要是用cv2.findContoursimport numpy as np import cv2im = cv2.imread('test.jpg') imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(imgray,127,255,0) image, contours,
opencv学习笔记—— findContours函数参数详解(检测出物体的轮廓)
Opencv中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下 findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据结构是怎样 的?hierarchy到底是什么鬼?Point()有什么用? 先从findContours函数原型看起: findContours( InputOut...
OpenCV findContours 返回结果的顺序
笔记 在做 OCR 的时候遇到了个坑,在使用了 findContours 查找文字区域的时候,发现返回的文字是倒序的,有时还是无序emmm。 找了很久才发现是这个函数的问题,它的实现算法并不是想当然的从左到右查找标记序号的(从整体来看)。所以要想输出有序结果必须自己实现,如得到区域质心Centroid,可参考这篇详解http://opencvpython.blogspot.com/20...
OpenCV 删除轮廓的方法(二)
利用vector迭代器(iterator)遍历内容,利用erase()函数删除轮廓,实验设计为小于20的轮廓被删除,为了效果更明显,在阈值分割前不做平滑和滤波的处理,代码如下:#include<iostream> #include <cv.h> #include <highgui.h> #include <cvaux.h> #include <tchar.h> using names
opencv基础(3)——cvFindContours提取轮廓
1、findContours函数原型以及参数介绍 void findContours (                  InputOutputArray image,            //输入图像,必须是8位单通道图像,并且应该转化成二值的                   OutputArrayOfArrays contours, //检测到的轮廓,每个轮廓被表示成一个point...
OpenCV3.0 Examples学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
简介 这个系列的目的是通过对OpenCV示例,进一步了解OpenCV函数的使用,不涉及具体原理。 示例代码地址:http://docs.opencv.org/3.0.0/examples.html(安装openCV时框选examples) 本文记录了对OpenCV示例contours2.cpp的分析。 资料地址:http://docs.opencv.org/3.0.0/d0/d2a/contours2_8cpp-example.html 这个示例主要演示了如何使用findContours 对图像进行轮廓检测
OpenCV 对轮廓的绘图与筛选操作总结
OpenCV利用findContours找到图像中的轮廓,根据这些轮廓的特征进行筛选有利于进一步逼近最终的兴趣区域,减少其他算法的时间,提高代码的运行效率,而对轮廓的绘图则可以直观的看到筛选结果。其实绘图的函数在下面的博客中就已经总结过,不过这次换了一个思路重新温习下这些函数,并把他们应用到轮廓的绘图中。 http://blog.csdn.net/chaipp0607/article/detail
Opencv轮廓跟踪算法源码分析(1)——icvFetchContour()
想要看懂Opencv源码,打算从findContours()开始。 源文件: C:\***\opencv\sources\modules\imgproc\src\contours.cpp 环境:opencv2.4.9 + VS2010 void cv::findContours( InputOutputArray _image, OutputArrayOfArrays _contours
轮廓查找问题小记
opencv中使用Mat进行轮廓查找的函数如下: void findContours(InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset=Point()) opencv文档地址 这个函数看起来挺简单的,我们输入一张图像,它就给我们返回相应的轮廓,但是一张图像经过不同处理
【OpenCV3经典编程100例】(20)轮廓特征:查找轮廓findContours()函数、绘制轮廓drawContours()函数
提取轮廓特征:边缘检测之后,二值图像中显现的是边缘像素(一个个像素点)。之后,连接边缘像素形成轮廓(闭合曲线)。查找轮廓:findContours()函数绘制轮廓:drawContours()函数API函数一、c++示例代码//包含头文件 #include &amp;lt;opencv2/opencv.hpp&amp;gt; //命名空间 using namespace cv; using namespace s...
不规则Contours内部像素的操作
在findContours函数使用了之后,有时候就会面临对Contours内部区域的访问。由于contours不一定是凸图形,所以使用循环操作的时候总感觉不那么方便。比如在下图中,已经使用findContours查找到边界并填充边界内部,然后与源图像进行and运算后的结果: 这时候要对非规则点的区域进行相关特征的计算,比如说是区域的灰度均值。观察图像的特征可以发现除了我们需要的点外,其他
OpenCV findContours函数时的小发现
在应用opencv中findContours()函数与drawContours()函数进行滤波时,将检测到的面积小于某个值的轮廓使用drawContours()函数涂成黑色,此时在显示的图片上看不到该轮廓,但是此时的轮廓并没有在vector > contours容器中删除。
opencv轮廓检测之FindContours函数算法解释
在检测物体的轮廓时,我们通常会使用到opencv中的findcontour和drawcontour,比较常用而且效果不错。 1985年,satoshi suzuki发表了一篇论文,Topological structural analysis of digitized binary images by border following,他介绍了两种算法来实现轮廓的提取,当然输入的图像是二值图像。...
opencv学习(四十)之寻找图像轮廓findContours()
1.概述在这篇文章中介绍如何使用findContours()函数寻找图像中物体的轮廓,在OpenCV中没有给出findCountours()函数的原理,如果想了解查找轮廓原理,可以翻**墙出去Google”Topological structural analysis of digitized binary images by border following”,这里就不一一翻译了.2.APIope
findContours 函数 hierarchy轮廓的层级关系终于弄懂了
本来就是云里雾里的,最近在写那个二维码的识别程序彻底把我弄崩溃了,决定好好弄懂轮廓的层级关系,前天一吧友推荐了一个相关资料,今天上午看了好一会,终于通过这个资料弄懂了。资料在这里: http://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html 但是先说好,资料里说的跟我实际做的是不一样的,我的是opencv2
【OpenCV3】图像轮廓查找与绘制——cv::findContours()与cv::drawContours()详解
查找图像的轮廓在图像处理及应用中扮演着重要的角色。那么什么是轮廓(contour)?《Learning OpenCV 3》中给出的定义是这样的——轮廓即是以某种方式表示图像中的曲线的点的列表。这种表示可以根据实际的情形不同而不同。表示一条曲线的方式有很多种。OpenCV中,轮廓是由STL风格的vector&amp;lt;&amp;gt;模板对象表示的,其中vector中的每个元素都编码了曲线上,下一点的位置信息。...
基于OpenCV的findContours查找图像连通域,并进行排序
#include &amp;lt;opencv2/legacy/legacy.hpp&amp;gt; #include &amp;lt;opencv2/opencv.hpp&amp;gt; #include &amp;lt;vector&amp;gt; using namespace std; using namespace cv; //对每条连通域上的各点根据y从小到大进行排序 void SortContourPoi...
Opencv暑期历程--Day6(根据车牌检测程序讲解“轮廓查找,形状查找,感兴趣区域(roi),绘制图形,增强对比度,锐化图片”)
这次我打算把轮廓查找,形状查找,感兴趣区域(roi),绘制图形,增强对比度,锐化图片,imwirte都一并讲了。因为之前老师叫我做了一个检测车牌的小程序,刚好我自己设计的算法里都需要这些,那就讲到这些东西的时候我再拓展开来讲了,这个可能一下子没办法总结完,不急,慢慢来。 我先讲一下我的算法: 我的思路很简单,就是能够说从图像中找到一些符合车牌大小颜色的矩形区域,因为车牌是矩形的嘛,然后最后根据...
OpenCV——findContours函数的使用(基于Mat轮廓处理基础)
本文所有代码参考OpenCV 300 目录 1.提取轮廓 2.绘制轮廓 3.获取轮廓最小外接矩形 4.获取轮廓最小外接圆 5.填充RotatedRect 1.提取轮廓 void findContours//提取轮廓,用于提取图像的轮廓 ( InputOutputArray image,//输入图像,
opencv findContours、drawContours、minAreaRect查找图像的轮廓、最小外接矩形
findContoursfindContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Po...
OEPNCV 轮廓提取函数findContours中所用的算法原理疑问。
OPENCV 中的轮廓提取函数findContours。所实现的算法是 来自于 Satoshi Suzuki and others. Topological structural analysis of digitized binary images by border following. Computer Vision, Graphics, and Image Processing, 30(1...
Python3与OpenCV3.3 图像处理(二十一)--轮廓发现
一、什么是轮廓发现 是基于图像边缘提取的基础,寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓的发现 二、轮廓发现API findContours 发现轮廓 drawContours绘制轮廓 三、示例代码   import cv2 as cv import numpy as np def contours(img): dst=cv.GaussianBlu...
OpenCV教程 之 寻找物体的轮廓与凸包:findContours、convexHull函数(C++)
凸包(Convex Hull)是一个计算几何中常见的概念,简单来说,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有点,理解物体形状轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷。很多复杂物体的性能能被这种缺陷表示出来
java 合并一个图片到另一个图片的轮廓
import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; import java.awt.Transparency; import java.awt.geom.Area; import java.awt.image.BufferedImage; impor
【opencv关于轮廓上的点操作--轮廓篇3】
轮廓周围绘制矩形框 vector&amp;lt;vector&amp;lt;Point&amp;gt;&amp;gt;,vector&amp;lt;V e c 4 i&amp;gt;,vector&amp;lt;R e c t&amp;gt;,vector&amp;lt;R o t a t e d R e c t&amp;gt; vector&amp;lt;vector&amp;lt;Point&amp;gt;&amp;gt;: vector容器里面放了一个vector容器,子容器里...
findcounters函数查找的轮廓点集有序排列
std::sort(contours.begin(),contours.end(),ContoursSortFun); sort是分类函数,参数解释: 第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。第二个参数相对较好理解,即首地址加上数组的长度n(代表尾地址的下一地址)。最后一个参数是比较函数的名称(自定义函数cmp),这个比较函数可以不写,即第三个参数可以缺省,...
opencv轮廓检测之椭圆检测-----算法篇(10)--FindContours函数算法解释
Topological structural analysis of digitized binary images by border following 1985   出于对版权的考虑,  这里只附上论文名,  墙内百度文库可以找到.  资源共享是好事, 但请大家尊重版权不要拿不是自己的东西来赚积分 首先介绍了基本概念        1. 上下左右极限位置构成了frame,
【opencv学习之三十一】轮廓查找并统计 数米实例
opencv有几个经典实例,其中一个关于轮廓查找并统计的实例,数米粒的实验代码,这里简单贴出来: /****************************************************************************************\ * 25 查找并计算米粒的数量
轮廓检测:findContours函数使用
findContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, ...