opencv<三>基于opencv的canny检测
来源:互联网 发布:5年java开发上海工资 编辑:程序博客网 时间:2024/06/10 21:50
基于opencv的canny检测
#include "cv.h"
#include "highgui.h"
IplImage* doCanny(
IplImage* in,
double lowThresh,
double highThresh,
double aperture)
{
if (in->nChannels != 1)
return(0); //只能处理灰度图像
IplImage* out = cvCreateImage(
cvGetSize( in ),
in->depth, //8位
1);//建一个8位灰度图像
cvCanny( in, out, lowThresh, highThresh, aperture );//函数的第二及第三个参数为两个阈值。
//小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割
return( out );
};
int main( int argc, char** argv )
{
IplImage* img_rgb = cvLoadImage( "D:\\vs2008\\project\\canny检测\\lena.jpg" );
IplImage* img_gry = cvCreateImage( cvSize( img_rgb->width,img_rgb->height ), img_rgb->depth, 1);
cvCvtColor(img_rgb, img_gry ,CV_BGR2GRAY);//RGB转化为灰度图像
cvNamedWindow("RGB图像", CV_WINDOW_AUTOSIZE );
cvNamedWindow("Gray图像", CV_WINDOW_AUTOSIZE );
cvNamedWindow("Canny检测图像", CV_WINDOW_AUTOSIZE );
cvShowImage("Gray图像", img_gry );
cvShowImage("RGB图像", img_rgb );
IplImage* img_cny = doCanny( img_gry, 10, 100, 3 );//设置第一阈值和第二阈值,以及soble算子参数
cvShowImage("Canny检测图像", img_cny );
cvWaitKey(0);
cvReleaseImage( &img_rgb);
cvReleaseImage( &img_gry);
cvReleaseImage( &img_cny);
cvDestroyWindow("RGB图像");
cvDestroyWindow("Gray图像");
cvDestroyWindow("Canny检测图像");
}
原图
灰度图
canny边缘检测
- opencv<三>基于opencv的canny检测
- Opencv的Canny边缘检测
- 基于OpenCV的canny边缘检测的MFC实现
- 基于OPENCV的CANNY边缘检测算子详细代码实现
- 【OpenCV】图像的变换(三)-Canny边缘检测
- opencv程序三:canny边缘检测算法
- Android opencv(三) 边缘检测Sobel、Canny
- OpenCV学习系列:OpenCV实现基于canny检测
- 【OpenCV】Canny 边缘检测
- opencv-canny边缘检测
- opencv canny边缘检测
- openCV Canny边缘检测
- 【openCV】Canny边缘检测
- opencv:canny边缘检测
- opencv-Canny 边缘检测
- opencv Canny边缘检测
- openCV canny边缘检测
- opencv canny边缘检测
- Oralce Create User PL/SQL
- 命令STRSST启动系统服务工具(System Service Tools)
- 算法实战1:爱消除(Elimination Game)
- 二叉树的遍历 -前中后--递归非递归 --链表,数组
- //从1加到几等于3003.
- opencv<三>基于opencv的canny检测
- 把所有能被7整除的三位数显示出,一行输出7个数。
- 笔试编程题
- 函数
- UVa 369 Combinations (用double算组合数)
- Lightoj 1018 DP
- 14年招聘
- 精通Android4学习笔记-设置开发环境
- TP-LINK WR847N