赞
踩
我们将在本文中介绍以下高级图像处理操作:
Canny 边缘检测
轮廓和形状识别
Canny 边缘检测:Canny 边缘检测是一种流行的边缘检测算法。它是由 John F. Canny 在 1986 年开发的。它是一个多阶段算法,我们将按如下方式经历每个阶段:
噪声抑制:第一步是使用高斯平滑从图像中去除噪声,这涉及使用高斯核,其中靠近核中心的像素被赋予比远处像素更多的权重。
梯度计算:应用Sobel 滤波器计算图像的梯度以计算边缘强度和方向,该滤波器突出显示 x 和 y 轴上的强度变化。
Non-Maximum Suppression: Non-Maximum Suppression通过遍历上一步生成的梯度矩阵中的所有值来寻找边缘方向强度更大的像素,从而减少边缘的厚度。
双阈值滞后:最后一步使用输入参数下阈值和上限阈值来过滤掉潜在边缘,根据以下标准丢弃不相关的边缘:
如果像素梯度值高于上限阈值,则像素被接受为边缘。
如果像素梯度值低于下限阈值,则像素被拒绝。
如果像素梯度值介于两个阈值之间,则仅当它连接到高于阈值上限的像素时才会被接受。
ImgProc类为 Canny 边缘检测提供了一个Canny方法,该方法采用以下参数:
Source Image: Mat
Output edges: Mat
Lower Threshold: double
Upper Threshold: double
- public static Mat cannyEdges(Mat img){
- Mat canny = new Mat();
- Imgproc.Canny(img,canny,30,100);
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。