博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]opencv使用cvFindContours提取联通域
阅读量:4607 次
发布时间:2019-06-09

本文共 982 字,大约阅读时间需要 3 分钟。

// m_imgFeature为黑白目标图像,白色为前景,黑色为背景

// 注意此函数会修改m_imgFeature内容。若其不可更改,应另建立副本

// 1. count contour CvMemStorage* storage = 0; storage = cvCreateMemStorage(0);          //开辟默认大小的空间 CvSeq* contour = 0; cvFindContours( m_imgFeature, storage, &contour, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE );              // 查找外边缘

int num = 0; for( ; contour != 0; contour = contour->h_next ) {     CvRect rect;     rect = cvBoundingRect(contour,0);        // 转化为点列     m_arrLine.SetSize(num+1);     m_arrLine.GetAt(num).SetLine(rect.x,rect.x+rect.width ,rect.y,rect.y+rect.height);     num = num+1; 

      for( i = 0; i < contour->total; i++ )       {          CvPoint* line = (CvPoint*)cvGetSeqElem(contour,i);          cvLine( color_dst, line[0], line[1], CV_RGB(255,0,0), 3, 8 );      } }

// .release cvReleaseMemStorage(&storage);

//end of code

cvFindContours的第5个参数

CV_RETR_EXTERNAL     查找外边缘,各边缘以指针h_next相连

CV_RETR_LIST                查找所有边缘(包含内部空洞),各边缘以指针h_next相连

CV_RETR_CCOMP          查找所有边缘(包含内部空洞),按照如下方式组织

 

蓝色表示v_next,绿色表示h_next

转载于:https://www.cnblogs.com/daren-godlike/p/3325449.html

你可能感兴趣的文章
%s的用法
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端...
查看>>
Python学习笔记
查看>>
unshift()与shift()
查看>>
使用 NPOI 、aspose实现execl模板公式计算
查看>>
行为型模式:中介者模式
查看>>
How to Notify Command to evaluate in mvvmlight
查看>>
33. Search in Rotated Sorted Array
查看>>
461. Hamming Distance
查看>>
Python垃圾回收机制详解
查看>>
jquery 编程的最佳实践
查看>>
MeetMe
查看>>
IP报文格式及各字段意义
查看>>
(转载)rabbitmq与springboot的安装与集成
查看>>