void OnCanny() { // TODO: Add your command handler code here IplImage* 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 here IplImage* 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); }
void OnCannyColor()OnSobel() { // TODO: Add your command handler code here IplImage* 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); }
{ // TODO: Add your command handler code here IplImage* 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 here IplImage* 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); /// }
OpenCV边缘检测
最新推荐文章于 2024-04-29 19:40:56 发布