2010-10-17 23 views
13

Mam zamiar rozpocząć projekt w przetwarzaniu obrazu i nie miałem doświadczenia z Matlab, Aforge, OpenCV i zastanawiałem się, czy ktoś miał jakiekolwiek doświadczenia z tymi różnymi pakietami oprogramowania.Matlab vs Aforge vs OpenCV

Zastanawiam się również, który z trzech pakietów był najbardziej wydajny, zakładam OpenCV, ale czy ktoś miał jakieś doświadczenie?

Dzięki

Jamie.

Odpowiedz

13

Pytanie, które należy sobie zadać, jest ważniejsze - czas lub czas komputera. Jeśli twoje zadanie jest naprawdę proste, możesz je zakodować w MATLAB i sprawić, by działał od razu. MATLAB jest zdecydowanie najłatwiejszy w rozwoju - język skryptowy z wbudowanym zarządzaniem pamięcią, ogromną gamą dostarczonych funkcji oraz doskonałym interfejsem do wyświetlania i manipulowania danymi podczas debugowania.

Z drugiej strony, MATLAB jest co najmniej o rząd wielkości wolniejszy niż skompilowany kod openCV dla wielu zadań. Jest to szczególnie ważne, jeśli korzystasz z bibliotek prymitywów intel wydajności.

Jeśli wiesz, jak kodować w MATLAB, proponuję napisać i debugować twoje algorytmy w tym języku, a następnie przenieść je do c/C++ z openCV dla szybkości. Jeśli potrzebujesz tylko kilku prostych funkcji, które chcesz przyśpieszyć, możesz wywołać kod c z MATLAB, ale ciężko jest sprawić, żeby działało to poprawnie kilka razy, zanim spróbujesz, więc prawdopodobnie lepiej będzie po prostu przepisać skończony kod całkowicie w c/C++

+0

Hej Marc Jestem całkowicie nowym użytkownikiem zarówno openCV, jak i matlab oraz przetwarzania obrazu jako całości. Muszę coś zrobić na śledzenie gałki ocznej za pomocą kamery internetowej. Co polecasz? Nie ma wystarczającej dokumentacji dla openCV? – Sohaib

2

Po pierwsze, proszę szczegółowo opisać potrzeby swojego projektu. Ma to największy wpływ na wybór, oprócz innych czynników - twojej ogólnej wiedzy programistycznej (jeśli nie masz do czynienia z siecią dot, ale tylko z C++, AForge nie jest dobrym wyborem, na przykład).

Generalnie

Zarówno AForge i OpenCV ma wbudowany interfejs do .NET, a także z OpenCV C++, Python, i więcej. Matlab może być bardziej wydajny, ale jeśli nie masz z nim żadnego doświadczenia - powinieneś także nauczyć się jego składni. Weź to pod uwagę.

Prawdopodobnie Matlab ma największą różnorodność funkcji, ale jest bardziej skomplikowany niż inne projekty. Same OpenCV i AForge mają pewne różnice - zobacz je opisane w tym StackOverflow question/ answers.

+0

Projekt zakłada montaż kamery na przedniej części łodzi podróży w dół kanału i wykrywania łodzi i innych obiektów. Oczywiście pierwszym problemem jest przetwarzanie wody wizualnie. – Jamie

2

Pracowałem w zeszłym roku w dwóch podobnych projektach z samochodami na autostradzie. Afaik, Matlab pozwala na przetwarzanie tylko jednej klatki obrazu na raz (na pewno można opracować algorytm do obliczania strumienia), ale za pomocą Simulink można bezpośrednio przetwarzać strumień.

Z drugiej strony, znalazłem AForge o wiele bardziej przyjazny i łatwiejszy w użyciu, ponieważ można łatwo dostosować parametry przetwarzania z GUI (nie tak szybko/łatwo) do zrobienia w Matlab/simulink.

Poszedłem na Aforge.Net. Jest także wystarczająco szybki, jeśli martwisz się szybkością przetwarzania. (używając 640x480)

2

Jeśli pytasz o użycie jednego z nich w.netto, łatwo można uzyskać następujące informacje:

1-matlab używany głównie w symulacji projektów, a nie projektu End-prototype; mój numer: 30;

2-aforge (jak w przypadku wielu projektów), jeśli nie potrzebujesz procesu kołowego, takiego jak przechwytywanie obrazu lub rozpoznawanie czegoś na obrazach lub ... okaże się, że jest bardzo dobry, ponieważ jest łatwy w użyciu, ale przydatny w pojedynczych procesach; mój numer: 50

3-opencv bardzo dobry w prędkości i przydatny do procesów kołowych, na przykład można robić zdjęcia z kamery internetowej i natychmiast rysować go bez żadnych opóźnień, ale nie jest łatwy w użyciu jako aforge. I tak to lubię, ponieważ jego prędkość i WIELE funkcji daje nam wszystko, czego potrzebujemy w programowaniu; mój numer: 80

Dr.Taha - Tahasoft.net