2014-11-20 350 views
1

我是圖像處理新手,需要計算圖像邊緣的強度。假設你有一個圖像,併爲該圖像添加模糊效果。這兩幅圖像的邊緣強度不同。我需要分別計算兩個圖像的邊緣強度。OpenCV - 計算圖像的邊緣強度

到目前爲止,我使用下面的代碼得到了canny邊緣檢測的圖像。

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; 

是否有任何方法來計算這個邊緣圖像的強度..?

+1

請定義「此邊緣圖像的強度」。我不知道你是否在尋找大量的邊緣或非常鋒利的邊緣或其他東西。 – beaker 2014-11-20 19:15:00

+0

從這個代碼你得到邊緣image.i想要計算邊緣的強度。這可以是該邊緣圖像的平均值。您可以使用銳利的邊緣或較大的no邊緣來計算平均值 – Sml 2014-11-21 05:12:15

+0

聽起來像是一個很好的計劃。你的結果是什麼? – beaker 2014-11-21 16:52:09

回答

0

mean會給你的圖像的平均值。如果您使用Canny如上,你可以這樣做:

Scalar pixelMean = mean(draw); 

,僅保留邊緣像素的均值,你可以使用圖像作爲模板及:

Scalar edgeMean = mean(draw, draw); 

不幸的是,由於Canny將所有邊緣像素設置爲255,您的意思將始終爲255。如果這是您正在查找的度量,那麼您可能需要使用Sobel(高斯模糊之後)並計算梯度以獲得相對邊緣強度。