2010-07-03 14 views
5

Mam dużą kolekcję zeskanowanych obrazów, a wszystkie one są nieco przekrzywione, z białym obszarem wokół nich.Jak wykryć (i poprawić) pochylenie na zdjęciach?

Obrazy te mają prostokąty kolorów, otoczone dużym białym obszarem. Problem polega na tym, że te prostokąty koloru nie są równoległe do obramowania obrazu.

Jestem pewna, że ​​musi istnieć sposób programowego wykrycia tych prostokątów koloru, aby móc obrócić obraz (a tym samym go przekrzywić), a następnie przyciąć go tak, aby pozostała tylko interesująca część. Chyba nie jestem do końca pewien, jak nazywa się ten proces, więc mam problem z wyszukaniem rozwiązania w Google.

Czy ktoś wie o podejściu, które mogłoby mi pomóc? Jakieś biblioteki, które powinienem zaglądać? Lub nazwa algorytmu, który mógłby pomóc?

Planuję używać Java dla tego projektu, ale tak naprawdę jeszcze nie zacząłem, więc jestem otwarty na sugestie bibliotek w dowolnym języku.

Odpowiedz

3
  • wykrywania granicy
  • Hough transformacji (jeśli wszystkie prostokąty na obrazie mają takie samo pochylenie) Detekcja konturu
  • prostokąt (połączony kontur składnik, wówczas minimalna powierzchnia ograniczająca prostokąt)
+0

Dzięki! Poszukiwania Hough Transform doprowadziły mnie do http://www.recognition-software.com/image/deskew/, który nie rozwiązał mojego problemu od razu po wyjęciu z pudełka, ale udało mi się nieco poprawić kod, aby go uzyskać. pracować bardzo dobrze. – pkaeding

+1

To jest zepsuta strona. Czy możesz poprawić link? –

+0

Czy został on uwzględniony przez Tess4j? – wprl

1

Was może również spróbuj obrazu scikit http://scikit-image.org/docs/dev/auto_examples/.

Jest to świetna biblioteka do transformacji hough, ale ma również inne metody, takie jak transformacja radonu i transformacje geometryczne dla tego rodzaju zadań.

To jest biblioteka python.

+0

Wow, wygląda to na bardzo przydatne! – pkaeding

1

Alyn to pakiet osób trzecich do wykrywania i korekcji pochylenia obrazów zawierających tekst. Wykorzystuje wykrywanie Canny Edge i transformację Hough, aby znaleźć ukośne.

Aby wykryć przekrzywienie, wystarczy uruchomić

./skew_detect.py -i image.jpg 

Aby poprawić pochylać, uruchom

./deskew.py -i image.jpg -o skew_corrected_image.jpg 
Powiązane problemy