b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

OpenCV实例:Canny边缘检测

电脑杂谈  发布时间:2019-09-11 13:02:34  来源:网络整理

canny边缘检测 opencv_canny边缘检测算法_opencv canny边缘检测

1.新建工程

启动Code::Blocks,选择File->New->Project, 项目类别选取:Console Application,项目名为:MyCanny,其他按默认选择。

2. 代码

打开main.cpp文件,输入下面代码:

#include <iostream>

#include "opencv2/opencv.hpp"

using namespace std;

char wndname[] = "Edge";

char tbarname[] = "Threshold";

IplImage *image = 0, *cedge = 0, *gray = 0, *edge = 0;

// define a trackbar callback

void on_trackbar(int h)

{

canny边缘检测 opencv_canny边缘检测算法_opencv canny边缘检测

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*)"lena.jpg";

int edge_thresh = 1;

if( (image = cvLoadImage( filename, 1)) == 0 )

opencv canny边缘检测_canny边缘检测算法_canny边缘检测 opencv

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

canny边缘检测 opencv_opencv canny边缘检测_canny边缘检测算法

cvWaitKey(0);

cvReleaseImage(&image);

cvReleaseImage(&gray);

cvReleaseImage(&edge);

cvDestroyWindow(wndname);

return 0;

}

3. 设置

打开Project-〉Build Options选项卡

选择Search directories,在Compiler里Add进之前安装的OpenCV的include目录

在Linker里Add进lib目录。

opencv canny边缘检测_canny边缘检测 opencv_canny边缘检测算法

选择Linker settingscanny边缘检测 opencv,将lib目录下的所有文件添加出来。

4. 编译

点击Build->Build编译项目。

5. 运行

将lena.jpg复制到MyCanny项目根目录下(为了便于,可不做)。

打开Project-〉Set programs‘ arguments,在Program arguments里输入图片的地址。

点击Build-〉Run

运行效果:

总结:

使用OpenCV,只用了几十行代码就实现了边缘测试功能,可见OpenCV的强悍。使用OpenCV可以大大降低研发图形图像处理程序的复杂程度,可以使研发人员专心于准确用途的研发canny边缘检测 opencv,而又能使用图形图像领域专家的算法来处理。

由于算法的通用性,目前在效率上也有必定的不足,上面的举例但是测试出了边缘,但是在完整性和连续性上也有不足,有遗漏和缺乏的现象存在,如果要用于实际的应用,可能还必须自己的二次开发。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-122514-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 郑洋洋
        郑洋洋

        “天下没有人靠炒股发财”说的绝对了

      • 黄秋生
        黄秋生

        北洋用的是实心弹

      每日福利
      热点图片
      拼命载入中...