void OnCanny() {// TODO: Add your command handler code hereIplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image),IPL_DEPTH_32F, 0);IplImage* image1 = cvCloneImage(GetDocument()->Image); IplImage* image2 = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 1);IplImage* pCannyImg = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 1);// convert the inoput image to gray image cvCvtColor(image1, image2, CV_BGR2GRAY);//cvSaveImage("gray.bmp", image2); cvCanny(image2, pCannyImg, 5, 150, 3);global_image = cvCloneImage(pCannyImg);cvNamedWindow("Cannyedge", CV_WINDOW_AUTOSIZE);cvShowImage("Cannyedge", pCannyImg); }void OnLaplace() {// TODO: Add your command handler code hereIplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image),IPL_DEPTH_32F,3);cvLaplace(GetDocument()->Image, img,3);global_image = cvCloneImage(img);cvNamedWindow("src1",CV_WINDOW_AUTOSIZE);cvShowImage("src1",img);}OnSobel() {// TODO: Add your command handler code hereIplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image),IPL_DEPTH_32F,3);cvSobel(GetDocument()->Image,img,2,2,3); global_image = cvCloneImage(img);cvNamedWindow("src1",CV_WINDOW_AUTOSIZE);cvShowImage("src1",img);}
void OnCannyColor() {// TODO: Add your command handler code hereIplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image),IPL_DEPTH_32F, 0);IplImage* image1 = cvCloneImage(GetDocument()->Image); int channels = image1->nChannels; IplImage *RedImg,*GreenImg,*BlueImg;IplImage *RedCanny,*GreenCanny,*BlueCanny;IplImage* image2 = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 3);RedImg=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1);GreenImg=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1);BlueImg=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1);RedCanny=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1);GreenCanny=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1);BlueCanny=cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1); cvSplit(image1, BlueImg, GreenImg, RedImg, 0); // 图层分离cvCanny(BlueImg, BlueCanny, 5, 150, 3);cvCanny(GreenImg, GreenCanny, 5, 150, 3);cvCanny(RedImg, RedCanny, 5, 150, 3);cvMerge(BlueCanny, GreenCanny, RedCanny, 0, image2); cvNamedWindow("Cannyedge", CV_WINDOW_AUTOSIZE);cvShowImage("Cannyedge", image2);global_image = cvCloneImage(image2);cvReleaseImage(&BlueImg);cvReleaseImage(&GreenImg);cvReleaseImage(&RedImg);cvReleaseImage(&BlueCanny);cvReleaseImage(&GreenCanny);cvReleaseImage(&RedCanny);cvReleaseImage(&image1);//cvReleaseImage(&image2); }void OnCannyDyn() {// TODO: Add your command handler code hereIplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image),IPL_DEPTH_32F, 0);IplImage* image1 = cvCloneImage(GetDocument()->Image); global_image1 = cvCloneImage(image1); //////////////////////////////////////////// Create the output image cedge = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 3); // 将彩色图像转换为灰度图像 gray = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 1); edge = cvCreateImage(cvGetSize(image1), IPL_DEPTH_8U, 1); cvCvtColor(image1, gray, CV_BGR2GRAY); // Create a window cvNamedWindow(wndname, 1); // create a toolbar cvCreateTrackbar(tbarname, wndname, &edge_thresh, 128, on_trackbar); // Show the image on_trackbar(0); // Wait for a key stroke; the same function arranges events processing cvWaitKey(0); cvReleaseImage(&image1); cvReleaseImage(&gray); cvReleaseImage(&edge);cvReleaseImage(&global_image); cvDestroyWindow(wndname);///////////////////////////////////////////////////////////////}