1、图像Mat转化为指针形式
Mat Image;
IplImage *pImage = &IplImage(Image);
2、图像指针
*IplImage *pImage = cvLoadImage("E:\\WT\\双目.jpg");
3、显示图像
const char *pstrTitle = "原图";
cvNamedWindow(pstrTitle, CV_WINDOW_AUTOSIZE);
cvShowImage(pstrTitle, pImage);
4、转灰度图
IplImage *pGrayImage = cvCreateImage(cvGetSize(pImage), IPL_DEPTH_8U, 1);
cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY);
5、二值化
IplImage *pBImage = cvCreateImage(cvGetSize(pGrayImage), IPL_DEPTH_8U, 1);
cvThreshold(pGrayImage, pBImage, 32, 230, CV_THRESH_OTSU );
6、找轮廓
CvMemStorage *pStorage = cvCreateStorage();
CvSeq *pSeq = NULL;
cvFindContours(pBImage, pStorage, &pSeq, sizeof(CvContour), CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0, 0));
7、画轮廓
IplImage *pLineImage = cvCreateImage(cvGetSize(pImage), IPL_DEPTH_8U, 3);
cvRectangle(pLineImage, cvPoint(0, 0), cvPoint(pLineImage->width, pLineImage->height), CV_RGB(255, 255, 255),CV_FILLED);
int Levels = 1;
cvDrawContours(pLineImage, pSeq, CV_RGB(0, 150, 0), CV_RGB(0, 0,150) , Levels, 2);
8、内存释放
cvReleaseMemStorage(&pcvMStorage);
cvDestroyWindow(pstrTitle);
cvReleaseImage(&pImage);
cvReleaseImage(&pGrayImage);
cvReleaseImage(&pBImage);
cvReleaseImage(&pLineImage);