⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 canny.cpp

📁 基于opencv的canny边缘检测
💻 CPP
字号:
#include "cv.h"
#include "highgui.h"

char wndname[] = "Edge";
char tbarname[] = "Threshold";
int edge_thresh = 1;

IplImage *image = 0, *cedge = 0, *gray = 0, *edge = 0;

// define a trackbar callback
void on_trackbar(int h)
{
	cvSmooth( gray, edge, CV_BLUR, 3, 3, 0, 0 );
	cvNot( gray, edge );
	
	// Run the edge detector on grayscale
	cvCanny(gray, edge, (float)edge_thresh, (float)edge_thresh*4, 3);
	
	cvZero( cedge );
	// copy edge points
	cvCopy( image, cedge, edge );	
	
	cvShowImage(wndname, cedge);
	
}

int main()
{
	
	image = cvLoadImage("beauty.BMP");
	// Create the output image
	cedge = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3);
	
	// Convert to grayscale
	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(wndname, 1);
	
	// create a toolbar 
	cvCreateTrackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);
	
	cvShowImage(wndname,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 + -