搜索
您的当前位置:首页正文

基于openCV 的canny图像边缘检测算法

来源:赴品旅游


canny检测

#ifdef _CH_

#pragma package #endif

#ifndef _EiC #include \"cv.h\" #include \"cxcore.h\" #include \"highgui.h\" #endif

char wndname[] = \"Edge\"; char tbarname[] = \"Threshold\";

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)h, (float)h*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\"; int edge_thresh = 1;

if( (image = cvLoadImage( filename, 1)) == 0 ) return -1;

// Create the output image

cedge = cvCreateImage(cvSize(image->width,image->height), 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);

// 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; }

#ifdef _EiC

main(1,\"edge.c\"); #endif

因篇幅问题不能全部显示,请点此查看更多更全内容

Top