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;
- }