分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
由于项目需要,要对图像中的最大连通域进行标定,并且存储。首先需要使用cvFindCountour对边缘进行标定,其实它的原理就是连通域的边缘提取;其次就是对连通域进行大小判断找出最大的连通域;最后当然就是进行Rect并且ROI了。如果有需要可以进行存储。直接上源码吧。
#include "cv.h"#include "cxcore.h"#include "highgui.h" int main( int argc, char** argv ){ //声明IplImage指针 IplImage* pImg = cvLoadImage("black.bmp",0); IplImage* pContourImg = NULL; CvMemStorage * storage = cvCreateMemStorage(0); CvSeq * contour = 0; CvSeq *contmax = 0; int mode = CV_RETR_EXTERNAL; cvShowImage( "src", pImg ); //为轮廓显示图像申请空间 //3通道图像,以便用彩色显示 pContourImg = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 3); //copy source image and convert it to BGR image cvCvtColor(pImg, pContourImg, CV_GRAY2BGR); //查找contour cvFindContours( pImg, storage, &contour, sizeof(CvContour), mode, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0)); //将轮廓画出