OpenCV 图形API(61)图像特征检测------检测图像边缘的函数Canny()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

使用Canny算法在图像中查找边缘。

该函数在输入图像中查找边缘,并使用Canny算法在输出映射(edges)中标记它们。在边缘连接过程中,会使用threshold1和threshold2之间的较小值。而较大值则用于找到强烈边缘的初始段。详情请参见:Canny边缘检测器

cv::gapi::Canny 是 OpenCV 的 G-API 模块中用于检测图像边缘的函数。G-API 是 OpenCV 中的一个模块,它提供了一种新的方式来处理图像和视频流,通过定义图形操作然后在不同的后端上执行它们。

注意:

函数文本ID为"org.opencv.imgproc.feature.canny"

函数原型

cpp 复制代码
GMat cv::gapi::Canny
(
 	const GMat &  	image,
	double  	threshold1,
	double  	threshold2,
	int  	apertureSize = 3,
	bool  	L2gradient = false 
) 		

参数

  • 参数 image: 8位输入图像。
  • 参数 threshold1: 滞后阈值法的第一个阈值。
  • 参数 threshold2: 滞后阈值法的第二个阈值。
  • 参数 apertureSize: 用于Sobel算子的孔径大小。
  • 参数 L2gradient: 一个标志,指示是否应该使用更精确的L2范数 n o r m = ( d I / d x ) 2 + ( d I / d y ) 2 norm=\sqrt{(dI/dx)^2 + (dI/dy)^2} norm=(dI/dx)2+(dI/dy)2

​来计算图像梯度幅度(当L2gradient=true时),或者默认的L1范数=|dI/dx|+|dI/dy|是否足够(当L2gradient=false时)。

代码示例

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp> // 包含核心功能
#include <opencv2/gapi/imgproc.hpp> // 包含图像处理功能

int main() {
    // 读取输入图像
    cv::Mat bgr_img = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");
    if (bgr_img.empty()) {
        std::cerr << "Error: Image not found!" << std::endl;
        return -1;
    }

    // 将BGR图像转换为灰度图像
    cv::Mat gray_img;
    cv::cvtColor(bgr_img, gray_img, cv::COLOR_BGR2GRAY);

    // 定义G-API图
    cv::GMat in;
    auto edges = cv::gapi::Canny(in, 50, 150, 3, false); 

    cv::GComputation comp(cv::GIn(in), cv::GOut(edges));

    // 创建输出矩阵
    cv::Mat out_edges;

    // 应用计算图并执行边缘检测
    comp.apply(cv::gin(gray_img), cv::gout(out_edges),
               cv::compile_args(cv::gapi::kernels()));

    // 显示原始图像和边缘检测结果
    cv::imshow("Original Image", bgr_img);
    cv::imshow("Edges Detected", out_edges);

    cv::waitKey(0); // 等待按键

    return 0;
}

运行结果

相关推荐
小雨下雨的雨3 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
我没胡说八道6 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟6 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love6 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇6 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明6 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc6 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技6 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本6 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规
极客老王说Agent6 小时前
2026电信IDC机房巡检深度报告:人工巡检频次和深度够吗?实在Agent重塑智慧运维新范式
人工智能·ai·chatgpt