#include "import.h"
#include
#include
IplImage* src = 0;
IplImage* image = 0;
IplImage* dest = 0;
//the address of variable which receives trackbar position update
int pos = 0;
//callback function for slider , implements opening
void Opening(int id)
{
id;
cvErode(src,image,NULL,pos);
cvDilate(image,dest,NULL,pos);
cvShowImage("Opening&Closing window",dest);
}
//callback function for slider , implements closing
void Closing(int id)
{
id;
cvDilate(src,image,NULL,pos);
cvErode(image,dest,NULL,pos);
cvShowImage("Opening&Closing window",dest);
}
//callback function for slider , implements erosion
void Erosion(int id)
{
id;
cvErode(src,dest,NULL,pos);
cvShowImage("Erosion&Dilation window",dest);
}
//callback function for slider , implements dilation
void Dilation(int id)
{
id;
cvDilate(src,dest,NULL,pos);
cvShowImage("Erosion&Dilation window",dest);
}
int main( int argc, char** argv )
{
char* filename = argc == 2 ? argv[1] : "c://33.jpg";
if( (src = cvLoadImage(filename,1)) == 0 )
return -1;
image = cvCloneImage(src);
dest = cvCloneImage(src);
//create windows for output images
cvNamedWindow("Opening&Closing window",1);
cvNamedWindow("Erosion&Dilation window",1);
cvShowImage("Opening&Closing window",src);
cvShowImage("Erosion&Dilation window",src);
cvCreateTrackbar("Open","Opening&Closing window",&pos,10,Opening);
cvCreateTrackbar("Close","Opening&Closing window",&pos,10,Closing);
cvCreateTrackbar("Dilate","Erosion&Dilation window",&pos,10,Dilation);
cvCreateTrackbar("Erode","Erosion&Dilation window",&pos,10,Erosion);
cvWaitKey(0);
//releases header an dimage data
cvReleaseImage(&src);
cvReleaseImage(&image);
cvReleaseImage(&dest);
//destroys windows
cvDestroyWindow("Opening&Closing window");
cvDestroyWindow("Erosion&Dilation window");
return 0;
}