博客
关于我
opencv18-canny检测算法
阅读量:791 次
发布时间:2023-02-23

本文共 1423 字,大约阅读时间需要 4 分钟。

OpenCV C++边缘检测代码示例

本代码示例展示了如何使用OpenCV库进行边缘检测,主要实现了Canny边缘检测算法。以下是代码的主要结构和功能说明:

代码结构

#include 
#include
#include
#include
using namespace std;using namespace cv;char *output_title = "output Image";int t1_value = 50;int t1_max = 255;void CannyDemo(int, void *);Mat src, canny_dst, gray_image, dst;int main() { src = imread("E:\\vs2015\\opencvstudy\\1.jpg", 1); if (src.empty()) { cout << "could not load the src image!" << endl; return -1; } char *input_title = "input Image"; imshow(input_title, src); namedWindow(output_title, CV_WINDOW_AUTOSIZE); cvtColor(src, gray_image, CV_BGR2GRAY); createTrackbar("ThresholdSize:", output_title, &t1_value, t1_max, CannyDemo); CannyDemo(0, 0); waitKey(0); return 0;}void CannyDemo(int, void *) { blur(gray_image, gray_image, Size(3, 3), Point(-1, -1)); Canny(gray_image, canny_dst, t1_value, t1_value * 2, 3, false); imshow(output_title, canny_dst); dst.create(src.size(), src.type()); src.copyTo(dst, canny_dst); imshow("out", dst); imshow("out取反", ~dst);}

主要功能

  • 读取图像:代码首先尝试读取指定路径的图像文件。如果读取失败,会输出错误信息并退出程序。
  • 灰度化:将输入图像转换为灰度格式,准备进行边缘检测。
  • 边缘检测:使用Canny边缘检测算法,设置边界值和检测核大小,生成边缘图像。
  • 图像处理:将原始图像和边缘检测结果分别显示,并对结果进行反转处理。
  • 显示结果:分别展示原始图像、边缘检测结果以及反转后的图像。
  • 应用场景

    该代码主要用于学术研究或工业应用中对图像边缘的精确检测,适用于目标检测、图像分割等场景。通过可调节的阈值参数,用户可以根据具体需求调整边缘检测的敏感度。

    代码注重了图像处理流程的清晰展示,同时通过可视化界面让用户直观观察边缘检测结果。

    转载地址:http://umsfk.baihongyu.com/

    你可能感兴趣的文章