OpenCV - 计算图像的边缘强度

OpenCV - Calculating edge strength of image

本文关键字:边缘 图像 计算 OpenCV      更新时间:2023-10-16

我是图像处理的新手,我需要计算图像中存在的边缘强度。假设您有一个图像,并向该图像添加模糊效果。这两个图像的边缘强度不同。我需要分别计算两个图像的边缘强度。

到目前为止,我已经使用以下代码对图像进行了精明的边缘检测。

  Mat src1;
  src1 = imread("D.PNG", CV_LOAD_IMAGE_COLOR);
  namedWindow("Original image", CV_WINDOW_AUTOSIZE);
  imshow("Original image", src1);
  Mat gray, edge, draw;
  cvtColor(src1, gray, CV_BGR2GRAY);
  Canny(gray, edge, 50, 150, 3);
  edge.convertTo(draw, CV_8U);
  namedWindow("image", CV_WINDOW_AUTOSIZE);
  imshow("image", draw);
  waitKey(0);
  return 0;

有没有办法计算这个边缘图像的强度..?

>mean会给你图像的平均值。如果您使用上述Canny,您可以执行以下操作:

Scalar pixelMean = mean(draw);

要仅获得边缘像素的平均值,您还需要使用图像作为蒙版:

Scalar edgeMean = mean(draw, draw);

不幸的是,由于Canny将所有边缘像素设置为 255 ,您的平均值将始终255 。如果这是您要查找的度量,则可能需要使用Sobel(在高斯模糊之后)并计算梯度以获得相对边缘强度。