您的位置:首页 > 运维架构

《学习OpenCV》练习5-11

2014-02-15 20:06 337 查看
#include "cv.h"
#include "highgui.h"
#include "stdio.h"
#include <opencv2/legacy/legacy.hpp>
//#pragma comment(lib, "opencv_legacy244.lib")

//*****************************************************
//主函数
//*****************************************************
int main()
{
IplImage* sorce = cvLoadImage( "homework_5-11.jpg" );
if (!sorce)
{
printf( "failed to load %s.\n", "homework_5-11.jpg" );
return -1;
}
IplImage* pyramid = cvCreateImage( cvGetSize(sorce), sorce->depth, sorce->nChannels );
IplImage* erode = cvCreateImage( cvGetSize(sorce), sorce->depth, sorce->nChannels );
IplImage* open = cvCreateImage( cvGetSize(sorce), sorce->depth, sorce->nChannels );

CvSeq* comp = NULL;
CvMemStorage* storage=cvCreateMemStorage(0);
assert( storage!=NULL );

//用金字塔实现图像分割
cvErode( sorce, erode );
cvDilate( erode, open );
cvPyrSegmentation( open, pyramid, storage, &comp, 4, 130, 30 );

cvNamedWindow( "sorce" ,CV_WINDOW_NORMAL );
cvNamedWindow( "pyramid" ,CV_WINDOW_NORMAL );
cvNamedWindow( "erode" ,CV_WINDOW_NORMAL );
cvNamedWindow( "open" ,CV_WINDOW_NORMAL );

cvShowImage( "sorce", sorce );
cvShowImage( "pyramid", pyramid );
cvShowImage( "erode", erode );
cvShowImage( "open", open );

cvWaitKey(0);
cvReleaseImage( &sorce );
cvReleaseImage( &pyramid );
cvReleaseImage( &erode );
cvReleaseImage( &open );
cvDestroyAllWindows();

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c opencv 图形 图像处理