2010-08-17 6 views
19

Jako praktyczny deweloper chciałbym zrobić dobry algorytm dla mojego konkretnego zadania, zbudowany z bloków, jak „ekstrakcji granicznej”, lub „korekcji gamma” i tak dalej, ale nie chcę, aby wdrożyć koło, robiąc to wszystko, więc wędruję - czy jest jakaś potężna biblioteka CV, taka jak C++ OpenCV?Co to jest najlepsza biblioteka obrazów Open Java z czystym językiem?

Mówiąc „najlepszy”, to znaczy biblioteki posiadające następujące właściwości:

  • wiele różnych algorytmów wdrożone
  • rozszerzalność - można tworzyć nowe rzeczy, jeśli chodzi o biblioteki
  • Wysoka wydajność
  • Bezpieczeństwo wątków
+2

Możesz wyjaśnić dokładnie, co „najlepsze” oznacza dla ciebie. –

+0

Dzięki, dodam taki opis –

Odpowiedz

11

Szaman, Długo szukałem biblioteka przetwarzania obrazów porównywalna do biblioteki opencv w Javie. Dla liczby zautomatyzowanych zadań, które wykonuje opencv, nie ma nic, co by się do niego zbliżyło dla zaawansowanych aplikacji typu wizji maszynowej.

chodzi o przetwarzanie obrazu though imagej posiada dużą ilość preimplemented algorytmów i wtyczek. Korzystam z tej biblioteki cały czas, aby wstępnie przetworzyć rzeczy, które muszę wysłać do narzędzi wizji maszynowej opencvs. Jest to również open source z łatwymi sposobami dodawania dodatkowych funkcji poprzez wtyczki lub bezpośrednie manipulacje, więc myślę, że może spełnić większość twoich wymagań.

30

Możesz być zainteresowany w czystej biblioteki Java Open Source Computer Vision Mam rozwijających się, BoofCV. BoofCV obsługuje wiele operacji wspólne przetwarzanie obrazu, funkcja wykrywania zaawansowany, falki denoising, kalibracji aparatu, wizja stereo i struktura z ruchu. Jest również bardzo szybki. Obecnie ma najszybszą implementację SURF z dowolnej biblioteki Open Source, w tym C/C++. Z punktu widzenia prędkości jest bardzo konkurencyjna w stosunku do OpenCV dla algorytmów wizyjnych średniego i wysokiego poziomu. OpenCV jest oczywiście szybszy do przetwarzania obrazu o niskim poziomie.

WWW: http://boofcv.org

OpenCV vs BoofCV: http://boofcv.org/index.php?title=Performance:OpenCV:BoofCV

SURF Wyniki badania: http://boofcv.org/index.php?title=Performance:SURF

wystarczająco Ok oznakowania. Mam nadzieję, że wam się spodoba!

  • Znaczna część kodu już istnieje, brakuje tylko kilku składników.
+2

+1 tak jest bardzo interesujące. Zastanawiam się, czy ma on templateMatching() z openCV. – KJW

+0

Nie wiem jak wy, ale coś testowane wydajność nie jest sumowaniu.Ja całkiem lubię Java i C#, ale jestem zbyt dobrze zaznajomiony z ich słabymi punktami wydajności do przetwarzania danych. Zarówno Java, jak i C# mają słabą wydajność podczas analizowania tablicy, ponieważ ** każdy ** dostęp do pojedynczej tablicy musi być zawijany w sprawdzanie granic tablicy, aby spełnić gwarancje tego języka. Dla każdej ścisłej pętli danych tablicowych (takich jak obraz), ten narzut staje się dość znaczący. –

+2

kod źródłowy jest dostępny. uruchom go sam, miałem inne potwierdzić moje wyniki SURF. Zasadniczo przyjmujesz założenie, że oba zestawy są kodami równoważnymi, a nie są nimi ... Widzisz problemy, o których mówisz w prostych tablicach ciężkich operacji niskiego poziomu i dominują w nich biblioteki C/C++. –

Powiązane problemy