Staram się wykrywać prostokąty na obrazach. Tło obrazów ma jeden kolor (przez większość czasu). Próbowałem dwóch metod, aby uzyskać obraz binarny (1 = tło, 0 = krawędzie), aby później wykonać transformację Hougha ...
Filtr Sobel lub Canny
Gładki obraz A, Utwórz obraz różnicowy A - gauss, Utwórz obraz binarny z progiem (Utwórz histogram, najwyższy przedział powinien być tłem ...)
Rezultatem jest obraz binarny z krawędziami. Naprawdę nie wiem, która metoda działa lepiej dla różnych obrazów. Jakieś pomysły?
image-processing
Martin Thompson
źródło
źródło
Odpowiedzi:
Kiedyś napisałem aplikację do wykrywania prostokątów. Wykorzystano wykrywanie krawędzi Sobela i transformację liniową Hougha.
Zamiast szukać pojedynczych pików na obrazie Hougha (linie), program szukał 4 pików w odległości 90 stopni między nimi.
Dla każdej kolumny na obrazie Hougha (odpowiadającej pewnym kątom), trzy inne kolumny były wyszukiwane pod kątem lokalnych maksimów. Po znalezieniu satifactory peak w każdej z czterech kolumn wykryto prostokąt.
Program skonstruował prostokąt i wykonał dodatkowe kontrole spójności kolorów wewnątrz i na zewnątrz prostokąta w celu rozróżnienia fałszywych trafień. Program służył do wykrywania umieszczania papieru w zeskanowanych arkuszach papieru.
źródło
Może się okazać, że lepszym wyborem jest wykrywacz krawędzi Laplaciana Gaussa. Powinien dawać ci zamknięte kontury częściej niż wykrywacz krawędzi Canny. Wierzę, że tego właśnie chcesz, ponieważ następnym krokiem jest zastosowanie transformacji Hougha.
źródło
Może ci się przydać, ale jest za późno, kiedy odwiedzam tę stronę dzisiaj
źródło
Jeśli twój obraz jest względnie czysty, masz wyraźne prostokąty bez wielu przerw. Alternatywą dla transformacji Hougha jest tworzenie konturów i zmniejszanie ich, aż utworzą 4-stronny kontur = prostokąt.
Są do tego próbki OpenCV
źródło
Samouczek w Pythonie, aby znaleźć prostokąty Napisane od podstaw. Wykorzystuje linie Canny i Hough.
źródło