一、简介

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

 #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. Twig---for循环

    如何使用twig做for循环. Twig中文文档: https://www.kancloud.cn/yunye/twig-cn/159620 {% for item in list %} <li ...

  2. 11.17 flask (1)

    2018-11-17 18:38:42 开始学习进行玩前面项目  开始进军flask flask是一个小型的web框架,,但是有很多第三方组件 最后组装组装就和django一样啦!!!!!!! pyt ...

  3. thymeleaf(二)

    项目demo     http://pan.baidu.com/s/1wg6PC 学习资料网址  http://www.blogjava.net/bjwulin/archive/2013/02/07/ ...

  4. 1、js基础内容

    js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...

  5. JAVAMail邮件服务器

    SMTP:simple mail transfer protocol(简单邮件传输协议),是internate传输mail的基本协议,也是TCP/IP协议组成员, POP3:邮局协议第三版,是inte ...

  6. [人工智能] 安装python jupyter

    1.  什么是python jupyter ? 简单的说,可以理解为一个IDE. http://jupyter.org/ 2.  安装python jupyter notebook http://ju ...

  7. Vue Watch 的原理 和 $nextTick() 通俗理解

    网上watch和$nextTick()解释比较复杂,涉及到promise,h5的dom发生变化的新api等复杂代码,下列就是两个参考. [watch原理] [$nextTick()] 首先,看遇到问题 ...

  8. AngularJs实现全选功能

    html代码 <!-- 数据表格 --> <div class="table-box"> <!--工具栏--> <div class=&q ...

  9. python练习题-day16

    1.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=["alex","wupeiqi","yuanhao" ...

  10. python进阶之 进程编程

    1.进程 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内 ...