一、简介

二、画出每个轮廓的每个点

 #include "opencv2/opencv.hpp"
using namespace cv; void main()
{
Mat src=imread("E://22.jpg");
Mat temp=src.clone();
//转灰度图,二值化
cvtColor(src,src,CV_BGR2GRAY);
threshold(src,src,,,THRESH_BINARY);
imshow("thres",src);
//查找并绘制轮廓
vector<vector<Point>>contours;
vector<Vec4i>hierarcy;
findContours(src,contours,hierarcy,CV_RETR_TREE,CV_LINK_RUNS);
/*drawContours(temp,contours,-1,Scalar(0,255,0),2,8); 绘制并显示所有轮廓
imshow("contours",temp);*/ //绘制轮廓的每一个点
for(int i=; i<contours.size(); i++){
for(int j=; j<contours[i].size(); j++){
circle(temp,Point(contours[i][j].x,contours[i][j].y),,Scalar(,,),,);
}
}
imshow("contours",temp);
waitKey();
}

轮廓太密集了,稍微改改参数

     for(int j=; j<contours[i].size(); j+=){
circle(temp,Point(contours[i][j].x,contours[i][j].y),,Scalar(,,),,);
}

稍微改改,有另一种效果(动态射线)

 for(int i=; i<contours.size(); i++){
for(int j=; j<contours[i].size(); j+=){
circle(temp,Point(contours[i][j].x,contours[i][j].y),,Scalar(,,),,);
line(temp,Point(,),Point(contours[i][j].x,contours[i][j].y), Scalar(, , ), , );
waitKey();
imshow("contours", temp);
}
}

改改又是一种效果

三、孔洞填充

 #include "opencv2/opencv.hpp"
using namespace cv; void main()
{
Mat src=imread("E://33.jpg");
Mat temp=src.clone();
//转灰度图,二值化
cvtColor(src,src,CV_BGR2GRAY);
threshold(src,src,,,THRESH_BINARY);
imshow("thres",src);
//查找并绘制轮廓
vector<vector<Point>>contours;
vector<Vec4i>hierarcy;
findContours(src,contours,hierarcy,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE); ///孔洞填充
findContours(src, contours, hierarcy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); //查找轮廓
drawContours(temp, contours, -, Scalar(, , ), -, ); //绘制轮廓
imshow("contours",temp);
waitKey();
}

稍微改改

opencv学习之路(23)、轮廓查找与绘制(二)——访问轮廓每个点的更多相关文章

  1. opencv学习之路(28)、轮廓查找与绘制(七)——位置关系及轮廓匹配

    一.点与轮廓的距离及位置关系 #include "opencv2/opencv.hpp" #include <iostream> using namespace std ...

  2. opencv学习之路(22)、轮廓查找与绘制(一)

    一.简介 图2 二.代码 #include"opencv2/opencv.hpp" #include<iostream> using namespace std; us ...

  3. opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形

    一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外 ...

  4. opencv学习之路(37)、运动物体检测(二)

    一.运动物体轮廓椭圆拟合及中心 #include "opencv2/opencv.hpp" #include<iostream> using namespace std ...

  5. opencv学习之路(27)、轮廓查找与绘制(六)——外接圆、椭圆拟合、逼近多边形曲线、计算轮廓面积及长度、提取不规则轮廓

    一.最小外接圆 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using ...

  6. opencv学习之路(25)、轮廓查找与绘制(四)——正外接矩形

    一.简介 二.外接矩形的查找绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //外接矩形的查找 ...

  7. opencv学习之路(24)、轮廓查找与绘制(三)——凸包

    一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat ...

  8. opencv学习之路(29)、轮廓查找与绘制(八)——轮廓特征属性及应用

    一.简介 HSV颜色空间(hue色调,saturation饱和度,value亮度) 二.HSV滑动条 #include "opencv2/opencv.hpp" #include ...

  9. opencv学习之路(39)、PCA

    一.PCA理论介绍 网上已经有许多介绍pca原理的博客,这里就不重复介绍了.详情可参考 http://blog.csdn.net/zhongkelee/article/details/44064401 ...

随机推荐

  1. Linux下的awk文本分析命令实例(一)

    1.  入门实例1.1 显示最近登录的5个帐号: [root@localhost ~]# | awk '{print $1}' root root root root reboot 1.2 如果只是显 ...

  2. HashSet的底层

    今天看博客,发现有个哥哥写到 HashSet的底层是数组结构,有点懵逼,不是HashMap吗怎么成数组了? 遂去查了下源码: 得以下结论: HashSet底层是 HashMap,其元素是内部map的k ...

  3. day16 十六、包、循环导入、导入模块

    一.包的概念 包:一系列模块的集合体.包通过文件夹管理一系列功能相近的模块 重点:包中一定有一个专门用来管理包中所有模块的文件 包名:存放一系列模块的文件夹的名字 包名(对象)存放的是管理模块的那个文 ...

  4. 浅谈Java对象的equals方法

    相等与同一: 如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等. 如果两个引用对象指的是同一个对象,则称这两个变量同一. ==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的 ...

  5. Fiddler_内置命令行_03

    Fiddler左下角有一个命令框  [基础命令] [举例说明] ? 回车之后,匹配的内容如下图 stop [断点命令] FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情, ...

  6. <c:forEach>详解

    <c:forEach>详解 <c:forEach>标签的语法定义如下所示. <c:forEach var="name" items="exp ...

  7. js $的扩展写法

    (function ($, w) { $.extend({   getRenderList: function (keyword, pageIndex, pageSize, renderEle, re ...

  8. iPhone屏蔽IOS更新、iPhone系统更新的提示(免越狱,有效期更新至2021年)

    iPhone屏蔽IOS更新.iPhone系统更新的提示(免越狱,有效期更新至2021年) 1.在Safari浏览器中粘贴如下链接,按提示打开链接. 输入http://apt.dataage.pub 2 ...

  9. git之概念图

    1.git四大区. . 2. 3. 4.

  10. 单端测序(Single-read)和双端测序(Paired-end和Mate-pair)的关系

    https://blog.csdn.net/hanli1992/article/details/82982434