Canny边缘检测

转载 2012年03月29日 19:13:42
#ifdef _CH_
#pragma package <opencv>
#endif

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

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*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);

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

相关文章推荐

canny边缘检测+直线提取

CANNY边缘检测 opencv源码

  • 2016-11-10 17:40
  • 13KB
  • 下载

【算法】Canny边缘检测

转载自Ronny的技术成长之路——边缘检测Canny边缘检测canny边缘检测实际上是一种一阶微分算子检测算法,但为什么这里拿出来说呢,因为它几乎是边缘检测算子中最为常用的一种,也是个人认为现在最优秀...

Canny边缘检测

  • 2015-07-28 16:22
  • 956B
  • 下载

Canny边缘检测

  • 2016-05-31 16:40
  • 959B
  • 下载

基于Sobel和Canny边缘检测

SOBEL CANNY算子学习总结

canny边缘检测

  • 2015-04-14 16:18
  • 241KB
  • 下载

Canny边缘检测.rar

  • 2014-12-25 23:25
  • 1.33MB
  • 下载

【openCV】Canny边缘检测

手动实现了Canny边缘检测算法的部分步骤。#include "opencv2/opencv.hpp" #include using namespace cv; const int dir[8][...

canny边缘检测

  • 2012-04-10 13:39
  • 892B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)