#include "highgui.h"
#include "cv.h"
#include <iostream>
#include <iomanip>
using namespace std;
IplImage* img = 0, *cedge = 0, *gray = 0, *edge = 0;
int edge_value = 0;
void on_trackbar(int h)
{
cvSmooth(gray,edge,CV_BLUR,3,3,0);
cvNot(gray,edge);
cvCanny(gray,edge,(float)edge_value,(float)edge_value*3, 3);
cvZero(cedge);
cvCopy(img, cedge, edge);
cvShowImage("Candy",cedge);
}
int main()
{
img = cvLoadImage("lena.jpg");
cedge = cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,3);
gray = cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
edge = cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
cvCvtColor(img,gray,CV_BGR2GRAY);
cvNamedWindow("Candy",1);
cvCreateTrackbar("Threshold","Candy",&edge_value,100,on_trackbar);
on_trackbar(0);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&gray);
cvReleaseImage(&edge);
cvDestroyAllWindows();
}