查找并绘制轮廓 opencv
findContours():
第二个参数为一个检测到的轮廓,函数调用后的运算结果都放在这里,每个轮廓存储为1个点向量,用point类型的vector表示。
第三个参数表示轮廓数量,包含了许多元素。每个轮廓对应4个hierarchy元素hierarchy[i][0]——hierarchy[i][3],分别表示后一个轮廓,前一个轮廓,父轮廓,内嵌轮廓的索引编号.
drawContours()函数:
第二个参数:所有的输入轮廓,用point类型的vector表示。
第三个参数:轮廓绘制的指示变量
第四个参数:轮廓的颜色
第五个参数:轮廓线条的粗细度。如为FILLED,便会绘制在轮廓内部。
第六个参数:线条的类型。
第七个参数:可选的层次结构信息。
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv; int main()
{
Mat src = imread("D:/meinv.jpg",0);
imshow("原图", src); Mat dstImage = Mat::zeros(src.rows, src.cols, CV_8UC3); src = src > 119;
imshow("取阈值化后的原始图", src); vector<vector<Point>>contours;
vector<Vec4i>hierarchy; findContours(src, contours, hierarchy, CV_RETR_CCOMP, CHAIN_APPROX_SIMPLE); int index = 0;
for (; index >= 0; index = hierarchy[index][0])
{
Scalar color(rand() & 255, rand() & 255, rand() & 255);
drawContours(dstImage, contours, index, color, FILLED, 8, hierarchy);
}
imshow("轮廓图", dstImage);
waitKey(0);
return 0; }
取阈值化后的图:

查找并绘制的效果图:

查找并绘制轮廓 opencv的更多相关文章
- opencv 6 图像轮廓与图像分割修复 1 查找并绘制轮廓 寻找物体的凸包
查找并绘制轮廓 寻找轮廓(findContours)函数 绘制轮廓(drawContours()函数) 基础实例程序:轮廓查找 #include <opencv2/opencv.hpp> ...
- 查找并绘制轮廓[OpenCV 笔记XX]
好久没有更新了,原谅自己放了个假最近又在赶进度,所以...更新的内容是很靠后的第八章,因为最近工作要用就先跳了,后面会更新笔记编号...加油加油! 在二值图像中寻找轮廓 void cv::findCo ...
- OpenCV——查找、绘制轮廓
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- opencv学习之路(23)、轮廓查找与绘制(二)——访问轮廓每个点
一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src= ...
- opencv学习之路(27)、轮廓查找与绘制(六)——外接圆、椭圆拟合、逼近多边形曲线、计算轮廓面积及长度、提取不规则轮廓
一.最小外接圆 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using ...
- opencv学习之路(25)、轮廓查找与绘制(四)——正外接矩形
一.简介 二.外接矩形的查找绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //外接矩形的查找 ...
- opencv学习之路(24)、轮廓查找与绘制(三)——凸包
一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat ...
- opencv学习之路(22)、轮廓查找与绘制(一)
一.简介 图2 二.代码 #include"opencv2/opencv.hpp" #include<iostream> using namespace std; us ...
- opencv —— findContours、drawContours 寻找并绘制轮廓
轮廓图像与 Canny 图像的区别 一个轮廓一般对应一系列的点,也就是图像中的一条曲线.轮廓图像和 Canny 图像乍看起来表现几乎是一致的,但其实组成两者的数据结构差别很大: Canny 边缘图像是 ...
随机推荐
- Windows之CMD查看系统信息
Windows 系统通过命令行(CMD)查询系统信息有两种方式: 1.图形化界面: 在“运行”中键入CMD,然后输入 dxdiag,回车后弹出图形化界面 ------ DirectX 诊断工具. 2. ...
- 在unbuntu 1204(32位)下安装hadoop2.2.0的一些问题
虽然在网上可以找到很多这样的step by step的教程,但是我还是遇到了很多问题.趁着一点记忆,将这些问题记录下来.安装过程参考了以下博客: http://www.cnblogs.com/life ...
- IIS7 配置SSL 绑定主机头
IIS7下面默认HTTPS绑定是无法指定主机头的,我们可以通过手工修改IIS配置来实现主机头绑定. 首先停止IIS服务. 然后打开C:/Windows/system32/inetsrv/config/ ...
- centos7 gearmand-1.1.15打包rpm
wget https://github.com/gearman/gearmand/releases/download/1.1.15/gearmand-1.1.15.tar.gz -O /root/rp ...
- 转发-react 性能深度探讨
作者:尤雨溪链接:https://www.zhihu.com/question/31809713/answer/53544875来源:知乎 这里面有好几个方面的问题. 1. 原生 DOM 操作 vs. ...
- PHP使用MySQL报no such file or directory
原因是没有连接数据库.加上下面代码: $link = mysql_connect(DB_HOST,DB_USER,DB_PWD);mysql_select_db(DB_NAME) or die('Co ...
- js01
/////////////////////////////////////////////////////////////js开端/////////////////////////////////// ...
- TP5.1 配置的获取与设置
我们现在学习对配置文件的获取(Config::get)与设置(Config::set) 我们将学会: (1)获取到一级配置文件 (2)获取到二级配置文件 (3)设置二级配置文件 1.获取一级配置文件 ...
- 【转载】#349 - The Difference Between Virtual and Non-Virtual Methods
In C#, virtual methods support polymorphism, by using a combination of the virtual and override keyw ...
- 高精度进位制转换,Poj(1220)
转自ACdream. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXS ...