📄 edge.cpp
字号:
#include "cv.h"#include "highgui.h"char wndname[] = "Edge Detect";
char OriWndName[] = "Origin Picture";char tbarname[] = "Threshold";int edge_thresh = 1;IplImage *image = 0, *cedge = 0, *gray = 0, *edge = 0;// 定义跟踪条的 callback 函数void on_trackbar(int h){ cvSmooth( gray, edge, CV_BLUR, 3, 3, 0 ); cvNot( gray, edge ); // 对灰度图像进行边缘检测 cvCanny(gray, edge, (float)edge_thresh, (float)edge_thresh*3, 3); cvZero( cedge ); // copy edge points cvCopy( image, cedge, edge ); // 显示图像 cvShowImage(wndname, cedge);}int main( int argc, char** argv ){ char* filename = argc == 2 ? argv[1] : (char*)"fruits.jpg"; if( (image = cvLoadImage( filename, 1)) == 0 ) return -1; // Create the output image cedge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 3); // 将彩色图像转换为灰度图像 gray = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1); edge = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1); cvCvtColor(image, gray, CV_BGR2GRAY); // Create a window
cvNamedWindow(OriWndName, 1); cvNamedWindow(wndname, 1);
cvShowImage(OriWndName, image); // create a toolbar cvCreateTrackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar); // Show the image on_trackbar(0); // Wait for a key stroke; the same function arranges events processing cvWaitKey(0); cvReleaseImage(&image); cvReleaseImage(&gray); cvReleaseImage(&edge); cvDestroyWindow(wndname); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -