Skocz do zawartości
Elektryk0

[Programowanie] OpenCV - Pierwsze kroki

Pomocna odpowiedź

W dzisiejszych czasach kiedy możliwości układów cyfrowych stale rosną, zaimplementowanie systemu wizyjnego w robocie mobilnym nie jest już rzeczą nieosiągalną dla zwykłego zjadacza chleba. Biblioteka OpenCV, którą tutaj prezentuje zawiera szereg funkcji, które zadanie to czynią jeszcze prostszym, warto więc się z nią zaznajomić.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

logo.thumb.png.157ae593b492d326206514300b006217.png

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Witam

Wszystko ok, kod się kompiluje ale po uruchomieniu pliku .exe wyświetla się komunikat "Program przestał działać..." a następnie błąd taki jak w załączniku. Czym to może być spowodowane ?

EDIT: Zauważyłem, że błąd występuje przy jakiejkolwiek użytej instrukcji z opencv jak

Mat img = imread(file_name);

waitKey(0);

i inne

Przy całej reszcie wszystko gra

Udostępnij ten post


Link to post
Share on other sites

Hmmm, a może jakiś prioblem z bibliotekami DLL? Błąd powinien być inny, ale może jest to jakoś powiązane.

Udostępnij ten post


Link to post
Share on other sites

Też mi się wydaje, że może być tak jak mówi OldSkull. Dobrze specyfikujesz miejsce szukania nagłówków przez kompilator, dlatego jak skomentujesz wszystkie użyte funkcje z opencv, a zostawisz include'y to Ci program zadziała. Ale przy użyciu jakiejkolwiek funkcji z tych nagłówków wykrzacza Ci się, bo nie zna implementacji tych funkcji, które są w dll'ach. Sprawdź jeszcze raz, czy wszystko dobrze konfigurujesz w opcjach projektu.

Udostępnij ten post


Link to post
Share on other sites

Dziękuję za odpowiedzi

Skasowałem wszystko i zainstalowałem od nowa z pominięciem kilku kroków. Znalazłem w internecie sposób bez kompilacji całej biblioteki. Samo ściągnięcie OpenCV + instalacja MinGW, dodanie dwóch ścieżek do zmiennych środowiskowych i wszystko działa.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Witam wszystkich

Być może nie w temacie ale nie mogłem sie powstrzymać 🙂.

Mam pytanie czy przy pomocy OpenCv da się coś takiego zmajstrować?

Z góry dziękuję za poświęcony czas i przepraszam jeśli nie w tym miejscu>

Pozdrawiam JP

Udostępnij ten post


Link to post
Share on other sites

Ze względu na minimalny budżet wolał bym web camerę, OpenCV i mach3 jako program sterujący.

Jestem w tym temacie całkowicie początkujący ale przy okazji tego forum znalazłem trop rozwiązania a nawet chyba dwa .

Pierwsze to zastosowanie alegorytmu uczącego ale pozostaje kilka nie wyjaśnionych ale:).

Drugi to rozwiązanie z forum wykrywanie obiektów https://www.forbot.pl/forum/topics20/programowanie-opencv-wykrywanie-obiektow-vt7785.htm?sid=4711575455106a8b782d739f35bf5c1c.

"Program będzie pobierał klatki z kamery internetowej, następnie będzie na bieżąco przetwarzał obraz, oraz zwracał współrzędne środka prostokąta otaczającego największy obiekt o ustalonym przez nas kolorze".

Wystarczy niewielka modyfikacja polegająca na dodaniu informacji o kącie obrotu i mam komplet danych do Mach3 i korekcji osi XY I obrotowej A:)

Co myślicie o takim rozwiązaniu?

Udostępnij ten post


Link to post
Share on other sites

Coś nie mogę tego zmusić do współpracy,zrobiłem wszystko i wywala błędy:

Co jest nie tak?

Udostępnij ten post


Link to post
Share on other sites

Hej !

słuchajcie już nie mam siły - na czym polegają te errory ( bo w opcjach linkera biblioteki dodane, oraz dodane do folderów mingw)?

Info: Internal Builder is used for build
g++ -o opencvOK.exe "src\\main.o" "-llibopencv_imgproc242 " "-llibopencv_highgui242 " 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -llibopencv_imgproc242 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -llibopencv_highgui242 
collect2.exe: error: ld returned 1 exit status

Udostępnij ten post


Link to post
Share on other sites

Ten sam problem co kolega wyżej, pomoże ktoś?

Edit:

Chyba rozwiązałem. Problem był dwustopniowy. Po pierwsze, przy linkowaniu bibliotek, cyfra na końcu to nr wersji. Ja miałem 248 nie 244. Po drugie, kopiując nazwę, kopiowała mi się spacja przed nią, która krzaczyła.

BTW, dlaczego nie mogłem wykonać mingw32-make z wiersza poleceń (jak byłem w odpowiednim folderze i wpisywałem powyższą komendę wywalało "nie ma takiego programu") a jak skopiowałem z folderów mingw plik mingw32-make.exe do folderu gdzie miał kompilować i odpaliłem z dwukilku to poszło?

Udostępnij ten post


Link to post
Share on other sites

Skoro nie było pliku make w katalogu to jak miał go system znaleźć?

Jedyny sposób to dodać odpowiednią ścieżkę do zmiennej PATH, bo wtedy poza obecnym katalogiem system szuka też programów w podanych ścieżkach...

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...