当前位置:   article > 正文

Java中的OpenCV-图像处理

java opencv

7c20c3b44b53ceb6527f364764e0f907.jpeg

我们将在本文中介绍以下高级图像处理操作:

  • Canny 边缘检测

  • 轮廓和形状识别

Canny 边缘检测:Canny 边缘检测是一种流行的边缘检测算法。它是由 John F. Canny 在 1986 年开发的。它是一个多阶段算法,我们将按如下方式经历每个阶段:

  1. 噪声抑制:第一步是使用高斯平滑从图像中去除噪声,这涉及使用高斯核,其中靠近核中心的像素被赋予比远处像素更多的权重。

  2. 梯度计算:应用Sobel 滤波器计算图像的梯度以计算边缘强度和方向,该滤波器突出显示 x 和 y 轴上的强度变化。

  3. Non-Maximum Suppression: Non-Maximum Suppression通过遍历上一步生成的梯度矩阵中的所有值来寻找边缘方向强度更大的像素,从而减少边缘的厚度。

  4. 双阈值滞后:最后一步使用输入参数下阈值和上限阈值来过滤掉潜在边缘,根据以下标准丢弃不相关的边缘:

    如果像素梯度值高于上限阈值,则像素被接受为边缘。

    如果像素梯度值低于下限阈值,则像素被拒绝。

    如果像素梯度值介于两个阈值之间,则仅当它连接到高于阈值上限的像素时才会被接受。

ImgProc类为 Canny 边缘检测提供了一个Canny方法,该方法采用以下参数:

  • Source Image: Mat

  • Output edges: Mat

  • Lower Threshold: double

  • Upper Threshold: double

  1. public static Mat cannyEdges(Mat img){
  2.         Mat canny = new Mat();
  3.         Imgproc.Canny(img,canny,30,100);
  4.         
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/650552
推荐阅读
相关标签
  

闽ICP备14008679号