2009-09-23 12 views
5

Mam nadchodzący projekt, który dotyczy segmentacji obrazu, czyli grupowania pikseli tworzących obraz w klastry w oparciu o pewne wizualne właściwości piksela.OpenCV Vs ImageMagick?

Planujemy zrobić to w C++ i wyzerowaliśmy dwie biblioteki przetwarzania/manipulacji obrazami - OpenCV i ImageMagick. Czytam w ImageMagick i wygląda na to, że ma wiele API do manipulowania obrazem. To dobrze, ale w naszym projekcie wykorzystalibyśmy sporo algebry liniowej i manipulacji matrycą odnoszącą się do pikseli tworzących obraz, aby uzyskać segmentację. Zastanawiam się, czy ImageMagick ma na to wsparcie.

Co z OpenCV, jak dobrze pasuje do moich potrzeb?

Odpowiedz

5

Używam OpenCV do tego typu zadań i stwierdziłem, że działa bardzo dobrze. Jest dobrze udokumentowany i ma wiele rodzajów operacji, które typowe potrzeby do analizy obrazu. Nie rozumiem, w jaki sposób ImageMagick mógłby zacząć od tego.

Zakładam, że to, co rozumiesz przez "segmentację obrazu", grupuje piksele w klastry na podstawie ich wartości i wartości sąsiednich pikseli. Jeśli po prostu licząc właściwości pikseli niezależnie i zasadniczo chcesz tylko załadować obraz do matrycy, prawdopodobnie nie ma znaczenia, czego używasz; ale aby przeprowadzić dowolną analizę, OpenCV jest drogą do zrobienia, a przynajmniej wartą dobrego wyglądu.

Proponuję przejrzeć niektóre typowe funkcje, jakie są potrzebne, takie jak Erode, Canny Edge Detection, Adaptive Thresholds, Algorytmy konturowania itp. I sprawdzić, czy ImageMagick posiada którąkolwiek z tych funkcji.

+0

Dzięki! OpenCV jest zgodny z tym, co chcę, ponieważ ma interfejsy API zdolne do segmentowania obrazu w swoich klastrach składowych w oparciu o cechy wizualne, takie jak kolor, intensywność i tekstura. – Arnkrishn

+0

Nie ma za co. Mam nadzieję, że OpenCV zadziała dla ciebie. – tom10

5

opencv jest bardziej odpowiedni dla Computer Vision, ImageMagick jest znacznie bardziej ogólnym narzędziem do obróbki obrazu.

Uważam, że ImageMagick jest bardziej przydatny do projektów przetwarzania obrazu, ponieważ ma bogatszy zestaw API niż openCV.

Ale jeśli pracujesz nad materiałami związanymi z Computer Vision, np. Wykrywaniem obiektów, OpenCV może być dobry.

-4

ImageMagick jest teraz w stanie śmieci. Zepsuta dokumentacja, niespójne API wśród języków i błędów są powszechne. Jest praktycznie martwy.

+1

Używam ImageMagick w moich projektach od lat i nie napotkałem ani jednego błędu. a jeśli chodzi o martwą część, czy mógłbyś nam podać referencję? –