Qt-OpenCV学习笔记--边缘检测--Canny()
opencv
OpenCV: 开源计算机视觉库
项目地址:https://gitcode.com/gh_mirrors/opencv31/opencv

·
概述
Canny边缘检测算子是John.F.Canny与1986年开发出来的一个多级边缘检测算法;边缘检测是计算机视觉中一个非常古老的问题,它涉及到检测图像中的边缘来确定目标的边界,从而分离感兴趣的目标。最流行的边缘检测技术之一是Canny边缘检测。
对最优边缘检测算法评价:
- 好的检测:算法能够尽可能多的标识出图片中的实际边缘;
- 好的定位:标识出的边缘要与实际图片中的实际边缘尽可能的接近;
- 最小响应:图像中的边缘只能标识一次,并且可能存在的图像噪声不应该标识为边缘。
函数
void cv::Canny
(
InputArray image,
OutputArray edges,
double threshold1,
double threshold2,
int apertureSize = 3,
bool L2gradient = false
)
image | 源图像 |
edges | 输出图像 |
threshold1 | 第一个滞后性阈值 |
threshold2 | 第二个滞后性阈值 |
apertureSize | Sobel算子的大小(默认值为3) |
L2gradient | 计算图像梯度幅度标志(默认值为False;如果为 True,则使用更精确的 L2 范数进行计算) |
测试代码
#include "widget.h"
#include "ui_widget.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//载入图像
cv::Mat src = imread("C:/opencv/fruit.jpg");
imshow("src",src);
//边缘检测
Mat dst;
Canny(src,dst,200,220);
//显示
imshow("dst",dst);
}
Widget::~Widget()
{
delete ui;
}
测试结果
参考




OpenCV: 开源计算机视觉库
最近提交(Master分支:8 个月前 )
fe5bd15c
Add CV_WRAP to registerOutput for language bindings support 1 天前
c9a73061
Enable GIF support by default 1 天前
更多推荐
所有评论(0)