2016-08-04 8 views
5

Prawdopodobnie nie szuka rozwiązania, ale szuka wskazówek na ten temat. To jest zaimplementowanie "skanera dokumentów" w naszej aplikacji na Androida.Strona wykrywania i przekształcania strony Androida/krawędzi. Konwertuj na B/W tiff

muszę dokładnie to zrobić:

  1. Weź obraz z kamery (nie ma problemu)
  2. Wykrywanie krawędzi strony/rogi (???)
  3. Pozwól użytkownikowi przenieść/dostosować narożniki (nie problem)
  4. Transform zdjęcie, aby prostokąt (???)
  5. Konwersja obrazu do B/W TIFF lub innego odpowiedniego formatu do transmisji przez sieć komórkową (kompaktowy, bit na piksel) (???)

Co próbowałem. Próbowaliśmy użyć Open CV. Jest ogromny, jest NDK. Konfiguracja i infrastruktura są dość złożone.

Czy jest coś, co jest lżejsze i zaprojektowane do tego właśnie zadania? Nawet reklama może być w porządku.

Po prostu patrząc na propozycje, w jaki sposób podejść do tego .. Głównym problemem jest wykrycie krawędzi i przekształcić myślę ..

Odpowiedz

3

Nie znam żadnej biblioteki, która będzie obsługiwać to dla ciebie, ale mam natknąć kilka projektów open source, które osiągają podobny rezultat. Większość bazuje na bibliotece OpenCV i/lub OpenCV4Android SDK. Oto kilka projektów godnych uwagi:

Inny podobny biblioteki Google Mobile Vision API, który zawiera Text Recognition API. Chociaż nie pozwoli ci to przekonwertować dokumentu na czarno-biały obraz, umożliwiłoby to konwersję dokumentu na zwykły tekst.

Konwersja obrazu do transmisji przez sieć; Android nie ma formatu pliku TIFF, ale istnieje co najmniej one library, który obsłuży tę konwersję. Android natywnie obsługuje kompresowanie obrazu jako JPEG, PNG or WEBP, za pomocą którego można przesyłać dane przez sieć w postaci zakodowanego ciągu:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); 
byte[] bytes = outputStream.toByteArray(); 
String encodedImage = Base64.encodeToString(bytes, Base64.DEFAULT); 
Powiązane problemy