opencv学习笔记12 图像轮廓的提取和绘制
2014-03-21 11:33
836 查看
原文链接
![](http://img.blog.csdn.net/20140321113559468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hvdWhvdXhpYW9tdXd1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20140321113643000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hvdWhvdXhpYW9tdXd1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
#include "highgui.h" #include "cv.h" #include <iostream> #include <iomanip> using namespace std; int main(void) { int i=0; int mode = CV_RETR_CCOMP;//设置提取轮廓模式 int contours_num=0;//提取轮廓的数目 CvScalar external_color;//绘制轮廓线的颜色 CvScalar hole_color; CvMemStorage *storage = cvCreateMemStorage(0); CvSeq *contours =0;//存储提取的轮廓图像 IplImage *pImg = NULL; IplImage *pContourImg = NULL;//显示提取的轮廓图像 IplImage *src=cvLoadImage("1.png",1); pImg = cvCreateImage(cvGetSize(src),src->depth,1); pContourImg =cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); cvCvtColor(src,pImg,CV_BGR2GRAY);//将读取的图像转化为灰度图像 cvNamedWindow("src",1); cvNamedWindow("contour",1); cvShowImage("src",src);//显示原图 cvThreshold(pImg,pImg,200,255,CV_THRESH_BINARY);//二值化 mode = CV_RETR_LIST; contours_num=cvFindContours(pImg,storage,&contours,sizeof(CvContour),mode,CV_CHAIN_APPROX_NONE); cout<<contours_num<<" "<<endl;//打印找到的轮廓的数目 for (;contours!=0;contours=contours->h_next) { hole_color=CV_RGB(rand()&255,rand()&255,rand()&255); external_color = CV_RGB(rand()&255,rand()&255,rand()&255); cvDrawContours(pContourImg,contours,external_color,hole_color,1,2,8); } cvShowImage("contour",pContourImg); cvWaitKey(0); cvReleaseImage(&src); cvReleaseImage(&pImg); cvReleaseImage(&pContourImg); cvReleaseMemStorage(&storage); }
相关文章推荐
- 【OpenCV学习】图像轮廓的提取和绘制
- opencv学习笔记 在输入图像上寻找并绘制轮廓
- OpenCV学习——图像轮廓的提取和绘制
- OpenCV学习之图像轮廓提取
- OpenCV 2 学习笔记(15): 绘制图像直方图
- OpenCV示例学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
- 初学 OpenCV 图像加载、输出+图像轮廓提取绘制并取出每个轮廓的坐标集合
- OpenCV学习笔记12 OpenCV图像处理模块ImgProc Module. Image Processing(五)
- C# OpenCV学习笔记五之图像轮廓
- Opencv2系列学习笔记10(提取连通区域轮廓)
- Opencv学习笔记——绘制图像的像素直方图
- 我的OpenCV学习笔记(20):提取元素的轮廓及形状描述子
- 我的OpenCV学习笔记(20):提取元素的轮廓及形状描述子
- OpenCv学习笔记(四):使用split函数提取彩色图像的三个通道
- Python OpenCV学习笔记之:图像轮廓处理
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- Opencv2系列学习笔记10(提取连通区域轮廓)
- 我的OpenCV学习笔记(20):提取元素的轮廓及形状描述子
- OpenCV示例学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
- OpenCV学习笔记5 - 图像绘制功能