我是图像处理的新手,我需要计算图像中的边缘的强度。假设您有一个图像,并在该图像中添加模糊效果。这两幅图像边缘的强度是不同的。我需要分别计算这两个图像的边缘强度。
到目前为止,我已经得到了精明的边缘检测图像使用下面的代码。
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;
有什么方法来计算这个边缘图像的强度吗..?
发布于 2014-11-21 18:11:21
mean
会给你图像的平均值。如果您像上面一样使用Canny
,您可以这样做:
Scalar pixelMean = mean(draw);
要获得边缘像素的平均值,还可以使用图像作为掩码:
Scalar edgeMean = mean(draw, draw);
不幸的是,由于Canny
将所有边缘像素设置为255
,所以您的平均值始终是255
。如果这是您要寻找的度量,您可能需要使用Sobel
(在高斯模糊之后)并计算梯度以获得相对的边缘强度。
https://stackoverflow.com/questions/27046357
复制相似问题