OPENCV例程2 :CANNY算子边缘检测

23 篇文章 0 订阅

转自:http://yu2xiangyang.blog.163.com/blog/static/37315638201091242739364/

#include "stdafx.h"
#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*3, 3);

    cvZero( cedge );
    //copy edge points
    cvCopy( image, cedge, edge);   //使边缘为彩色图象,如果直接复制edge到cedge,显示的是黑白边缘

    cvShowImage(wndname, cedge);
}

int main( int argc, char** argv )
{
   

 image = cvLoadImage( "E:\lena.jpg", 1);


    // Create the output image
    cedge = cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 3);

    // Convert to grayscale
    gray = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
    edge = cvCreateImage(cvGetSize(image), 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;
}

OPENCV例程2 :CANNY算子边缘检测 - 贝壳 - yu2xiangyang的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值