#include "stdafx.h" #include "opencv2opencv.hpp" using namespace cv; IplImage* g_image=NULL; IplImage* g_gray=NULL; int g_thresh=120; CvMemStorage* g_storage=NULL; void on_trackbar(int) { if(g_storage==NULL) { g_gray=cvCreateImage(cvGetSize(g_image),8,1); g_storage=cvCreateMemStorage(0); } else cvClearMemStorage(g_storage); CvSeq* contours = NULL; cvCvtColor(g_image,g_gray,CV_BGR2GRAY); cvThreshold(g_gray,g_gray,g_thresh,255,CV_THRESH_BINARY); cvFindContours(g_gray,g_storage,&contours); cvZero(g_gray); if(contours) { cvDrawContours(g_gray, contours, cvScalarAll(255), cvScalarAll(255), 100); } cvShowImage("Contours",g_gray); } int main(int argc,char** argv) { g_image = cvLoadImage("lena.jpg"); cvNamedWindow("Contours",1); cvCreateTrackbar("Threshold","Contours",&g_thresh,200,on_trackbar); on_trackbar(0); cvWaitKey(); return 0; }