0
我想要將垂直和水平邊緣連接在一起以獲取圖像中的所有邊緣,以便將其用於Harris角點檢測。邊緣幅度(垂直和水平邊緣)
我使用索貝爾過濾器,以獲得垂直和水平邊緣:
I = imread('CleanFingerprint.jpg'); // read the image
I = im2double(I); // convert it to double
G = rgb2gray(I); // convert it to gray
vert = [-1 -2 -1;
0 0 0;
1 2 1]* 0.25; // vertical filter
hor = [-1 0 1;
-2 0 2;
-1 0 1]* 0.25; // horizontal filter
OutputV = conv2(G, vert); // applying the filter to the image
OutputH = conv2(G, hor);
它的工作很大。然後當我嘗試將它們結合在一起時,我使用這個公式:
// sqrt((OutputV^2) + (OutputH^2))
Output = OutputV ^2;
Output1 = OutputH ^2;
Output2 = Output + Output1;
Output3 = sqrt(Output2);
我得到一個很奇怪的圖像。任何建議
不確定你到底在做什麼,但是當你使用OutputV^2時,你實際上在做OutputV * OutputV,矩陣乘法。你可能想要做的是OutputV。^ 2,那是OutputV。* OutputV,標量積,在這種情況下,它將矩陣的每個元素 – Inox
謝謝Inox,它現在可以工作,我將它改爲。^ 2 – N4LN