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

opencv-图像金字塔

2016-04-20 10:06 465 查看
#include <cv.h>
#include <highgui.h>
#include<opencv2/legacy/legacy.hpp>

void f(IplImage*src,IplImage*dst);
int main(int argc,char** argv){
cvNamedWindow("origal");
cvNamedWindow("test");
IplImage*src=cvLoadImage("3.jpg",1);
IplImage*dst=cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
f(src,dst);
cvShowImage("origal",src);
cvShowImage("test",dst);
cvWaitKey(0);
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvDestroyAllWindows();
return 0;

}
void f(IplImage*src,IplImage*dst){
CvMemStorage* storage=cvCreateMemStorage(0);//创建内存存储器用来统一管理各种动态对象的内存,当参数
//block_size为0时默认内存为64k
CvSeq* comp=NULL;

//函数cvPyrSegmentation(src,dst,CvSeq**comp,int level, double threshold1, double threshold2)中
//level的值不能超过图像长或宽整除2的最大次数
//comp存储的是分割结果更详细的信息
cvPyrSegmentation(src,dst,storage,&comp,3,150,30);//调用此函数时得加头定义

int n_comp=comp->total;//等于3
for(int i=0;i<n_comp;i++){
CvConnectedComp* cc=(CvConnectedComp*)cvGetSeqElem(comp,i);
//do_something_with(cc);
}
cvReleaseMemStorage(&storage);
}

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