[英]OpenCV - Calculating edge strength of image
我是圖像處理的新手,我需要計算圖像中邊緣的強度。 假設您有一個圖像,並且對該圖像添加了模糊效果。 這兩個圖像的邊緣強度不同。 我需要單獨計算兩者的圖像,邊緣強度。
到目前為止,我已經使用下面的代碼對圖像進行了邊緣檢測。
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
(在高斯模糊之后)並計算漸變以獲得相對邊緣強度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.