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; }

取阈值化后的图:

查找并绘制的效果图:

最新文章

  1. 烂泥:通过binlog恢复mysql备份之前的数据
  2. java Map迭代
  3. 1.4 Service
  4. linux读写ntfs
  5. learning from the previous teams
  6. Android 自定义RadioButton实现
  7. d010: 分离自然数
  8. poj 2976 Dropping tests
  9. 一个关于Integer的秘密
  10. python绝技 — 扫描蓝牙RFCOMM信道
  11. JDBC第四篇--【数据库连接池、DbUtils框架、分页】
  12. 三数之和的golang实现
  13. 微信小程序上拉下拉刷新
  14. Flume配置Load balancing Sink Processor
  15. Android Studio 创建不同分辨率的图标
  16. Android APP常见的5类内存泄露及解决方法
  17. Android - AssetManager
  18. kubernetes 垃圾回收机制
  19. java-数据库连接工具类 DataSourceUtil.java
  20. windows8系统安装MongoDB 2.6.3配置服务启动

热门文章

  1. dos命令执行mysql的sql文件
  2. h5:erver-Sent Events
  3. angular的多个模块执行 angular里 字符串与对象的互转
  4. orientationchange事件
  5. jQuery(四)(DOM一)
  6. css3实现iPhone滑动解锁
  7. ZIP文件压缩和解压
  8. mybatis由JDBC的演化过程分析
  9. vos设置可呼出手机或固话
  10. PDO链式操作——针对关键字出现问题的解决方案