下面是采用 CANNY 算子进行图像边缘检测的 C/C++ 源代码,在OPENCV BETA 4.0, VC6.0 环境下编译通过。关于OPENCV库的使用方法以及相关问题,请查阅下面的相关文章:
http://forum.assuredigit.com/display_topic_threads.asp?ForumID=11&TopicID=3471
运行文件下载地址:
http://www.assuredigit.com/program/edge.exe
=========
程序开始
=========
#ifdef _CH_
#pragma package <opencv><br>#endif</opencv>
#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;
// 定义跟踪条的 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(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
分享到:
相关推荐
opencv 实现的数字图像边缘检测的源代码。非常详细
在C++环境中用opencv实现道路边缘检测
Edge_Detection_using_OpenCV.zip
简单但好使的Roberts边缘提取的源代码程序
opencv的canny检测功能,Canny边缘检测于1986年由JOHN CANNY首次在论文《A Computational Approach to Edge Detection》中提出,就此拉开了Canny边缘检测算法的序幕。
opencv实现基于Sobel算子、Canny算子和Laplace算子的图像边缘检测算法。 开发环境:vs2010+opencv。
OpenCV3版-OpenCV3编程入门例程源代码(95个主线示例程序)
基于帧间差分法的运动目标检测vc源代码,调用OpenCV编程实现,文件中包含运行时所要的运动视频。
基于 Adaboost 人脸训练模板的人脸检测源代码,OpenCV环境中开发的
此为书本配套的OpenCV3示例程序源代码工程合集。开发测试环境为Windows7 64位旗舰版、Visual Stuido 2010 、OpenCV3.0 beta,理论上支持目前已经发布的OpenCV3全版本编译运行。 另有OpenCV2的详细注释的示例程序源...
opencv实现对任意图片的边缘检测并绘制出边缘图像
Opencv中imwrite函数源代码,Opencv中imwrite函数源代码,Opencv中imwrite函数源代码
用opencv写的关于soble边缘检测的源代码,详细的
opencv C++图像风格迁移 网络模型文件 及源代码下载 opencv C++图像风格迁移 网络模型文件 及源代码下载 opencv C++图像风格迁移 网络模型文件 及源代码下载 opencv C++图像风格迁移 网络模型文件 及源代码下载 ...
【1】书本正篇程序源代码 【2】附赠示例程序源代码 配套程序说明.doc 欢迎购买《OpenCV3编程入门》一书!...另有OpenCV3版的详细注释的示例程序源代码工程、书本配套可独立运行的exe执行程序合集分别提供下载。
包含canny算子的边缘检测源代码,以及在不同噪声下的响应。 自己编写的canny检测各种参数和步骤,可以与opencv自带的canny算子进行比较
可以运行的Sobel边缘提取程序的源代码,基于Opencv在MFC上编写的
opencv 多指尖检测 源代码 opencv 多指尖检测 源代码
基于opencv库检测图像边缘
由于工作需要,自己亲手用c++builder(代码跟vc++通用)的opencv图像处理程序,附上源代码,其中程序实体代码在unit1.cpp中,可用记事本查看。实现了二值图像(0,255)搜索不同形状(黑色为种子)的区域,并记录了...