关闭

学习OpenCV——金字塔分割(Trackbar)

标签: dstimageeventsfunctionup
2301人阅读 评论(0) 收藏 举报
分类:

 运行结果可能会出问题,还是用上一篇的定值效果比较好。

#include"cv.h"
#include"highgui.h"

char wndname[] = "Show";
char tbarname0[] = "Level";
char tbarname1[] = "Threshold1";
char tbarname2[] = "Threshold2";
int edge_thresh0 = 1;
int edge_thresh1 = 50;

IplImage* resize=0;
IplImage* dst=0;

void on_trackbar(int h)
{
	cvNamedWindow( "resize", 1 );      
	// Show the image in the named window       
	cvShowImage( "resize", resize );
	cvWaitKey(0);
	CvMemStorage* storage = cvCreateMemStorage(0);
	CvSeq* comp = NULL;
	cvPyrSegmentation(resize,dst,storage,&comp,edge_thresh0, edge_thresh1, edge_thresh1*3);
	cvReleaseMemStorage(&storage);
        
	// Show the image in the named window       
	cvShowImage( wndname, dst );
	
}

int main()
{
	IplImage* src=cvLoadImage("D:/1.jpg",1);
	//图像大小必须能被2^level整除
	resize=cvCreateImage(cvSize(512,512),8,3);
	dst=cvCreateImage(cvSize(512,512),8,3);
	cvResize(src,resize);
	 cvNamedWindow( wndname, 1 );
	 cvCreateTrackbar(tbarname0, wndname, &edge_thresh0, 8, on_trackbar);
	 cvCreateTrackbar(tbarname1, wndname, &edge_thresh1, 100, on_trackbar);
	  
	on_trackbar(1);
    // Wait for a key stroke; the same function arranges events processing
	// Press any key to exit.         
	// Clean up and don’t be piggies   
    cvWaitKey(0);
	  
	cvReleaseImage( &src );  
    cvReleaseImage( &dst ); 
	cvDestroyWindow(wndname);
	return 0;  
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1244327次
    • 积分:14484
    • 等级:
    • 排名:第810名
    • 原创:177篇
    • 转载:67篇
    • 译文:5篇
    • 评论:1177条
    博主描述
    小硕一枚,目前从业方向:基于交互式设备的应用研发,主要关注:Kinect、LeapMotion、Oculus等交互式设备或可穿戴设备 ;希望和大家交流,共同提高。大家如果对文章有什么问题,发邮件可能无法及时回复,请直接在文章评论栏留言。本人微博:

     小熊不去实验室

    博客专栏
    文章分类
    Tech Blog 1
    最新评论