Wdrażam transformację Hough-Radona w Matlabiewykrywa niektóre wzorce (głównie linie proste). Już to zaimplementowałem, ale problem polega na tym, że wykrywa także "ramkę" jako linię (patrz zdjęcie).
Kod do wdrożenia tego jest w zasadzie:
[H,T,R] = hough(BW,"RhoResolution",0.6,"Theta",-90:0.5:89.5);
P = houghpeaks(H,20,"threshold", ceil(0.1*max(H(:))));
lines = houghlines(BW,T,R,P,"FillGap", 15,"MinLength",50);
Gdzie linie są strukturą złożoną z pól:
- Punkt początkowy.
- Punkt końcowy.
- Kąt Tetha
- Odległość Rho
Czy jest coś, co mógłbym zrobić, aby pozbyć się czterech linii ramek?
Edytować:
Oryginalny obraz przed wykonaniem transformacji Hough to:
Odpowiedzi:
1 dla odpowiedzi № 1Problem dotyczy przetwarzania wstępnego. Spójrz na obraz binarny BW
w które wkładasz hough
: zawiera te linie.
Zalecam zastąpienie binaryzacji czymś takim:
BW = imbinarize(I, 128);
BW = bwmorph(BW,"skel");