/ / Matlab - Linie ramki w transformacji Hough - matlab, transform, hough-transform

Matlab - Linie ramek w transformacji Hough - matlab, transform, hough-transform

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).

wprowadź opis obrazu tutaj

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:

wprowadź opis obrazu tutaj

Odpowiedzi:

1 dla odpowiedzi № 1

Problem 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");