Założenia
Zakładam, że Visual Studio 2015 jest już zainstalowane, (w innych powinno być podobnie). Dlatego dalsze instrukcję będą dotyczyły konfiguracji OpenCV i dołączania bibliotek do projektu w wersji Debug. We wcześniejszym przykładzie, źródła OpenCV 3.2 i moduły były kompilowane, można również użyć wersji gotowej instalacyjnej. Przytoczone niżej ścieżki są przykładowe, jednak już w momencie zagłębienia w katalogi OpenCV powinno wszystko być identycznie. Samodzielnie definiujemy tylko główny katalog gdzie ma być zainstalowana biblioteka.
Różnice mogę wystąpić w zapisie wersji gdzie np: 3.2.0 może być opisane w nazwach plików jako 320, a przy innej wersji numer będzie inny. Przyrostek „d” w końcówkach nazw bibliotek znaczy Debug, w wersji Release zwykle go nie ma, więc analogicznie opierając się na poniższym opisie można i taką skonfigurować. Wszystko rozjaśni się niżej.
Zakładanie projektu
Po zainstalowaniu Visual Studio i wybraniu nowego projektu File -> New Project -> Visual C++ -> Win32 Console Application
i zaznaczamy czysty projekt.
Dodawanie Bibliotek
Gdzie dodać wpisy z bibliotekami.
Wersja instalacyjna.
W VS explorerze, prawy klawisz na nazwie projektu Preferencje w zakładce C/C++ w linijce Additional Include Directories podać ścieżkę np:
C:\OpenCV-3.2.0\build\include
W zakładce Linker w linijce Library Directories wstawić C:\OpenCV-3.2.0\build\x64\vc14\lib
Dalej w zakładce Additional Dependiences
opencv_world320d.lib
dla innych wersji np: 3.4.7 odpowiednio opencv_world347d.lib
Wersja kompilowana.
W VS explorerze, prawy klawisz na nazwie projektu Preferencje w zakładce C/C++ w linijce Additional Include Directories podać ścieżkę np:
d:\OpenCV_Source\build\install\include
W zakładce Linker w linijce Library Directories wstawić d:\OpenCV_Source\build\install\x64\vc14\lib
Dalej w zakładce Additional Dependiences
opencv_world320d.lib #i/lub dodatkowo opencv_calib3d320d.lib opencv_core320d.lib opencv_features2d320d.lib opencv_flann320d.lib opencv_highgui320d.lib opencv_imgcodecs320d.lib opencv_imgproc320d.lib opencv_ml320d.lib opencv_objdetect320d.lib opencv_photo320d.lib opencv_shape320d.lib opencv_stitching320d.lib opencv_superres320d.lib opencv_video320d.lib opencv_videoio320d.lib opencv_videostab320d.lib opencv_aruco320d.lib opencv_bgsegm320d.lib opencv_bioinspired320d.lib opencv_ccalib320d.lib opencv_datasets320d.lib opencv_dnn320d.lib opencv_dpm320d.lib opencv_face320d.lib opencv_fuzzy320d.lib opencv_line_descriptor320d.lib opencv_optflow320d.lib opencv_phase_unwrapping320d.lib opencv_plot320d.lib opencv_reg320d.lib opencv_rgbd320d.lib opencv_saliency320d.lib opencv_stereo320d.lib opencv_structured_light320d.lib opencv_surface_matching320d.lib opencv_text320d.lib opencv_tracking320d.lib opencv_xfeatures2d320d.lib opencv_ximgproc320d.lib opencv_xobjdetect320d.lib opencv_xphoto320d.lib
Dodawanie zmiennych środowiskowych.
Aby dało się uruchomić skompilowane programy, trzeba jeszcze dodać biblioteki łączone dynamicznie (Dynamic-Link Library) tzw.: dll do ścieżki Path
w systemie Windows. W tym wypadku jest to dla kompilatora c++ wersji 14 (vc14) oraz dla 64 bitowego procesora. Przykład do wyboru:
Dla wersji instalacyjnej c:\OpenCV-3.2.0\opencv\build\x64\vc14\bin\
Dla wersji kompilowanej samodzielnie d:\OpenCV_Source\build\install\x64\vc14\bin\
Po dodaniu trzeba zrobić restart komputera.
Przykład do testów:
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, char** argv ) { if( argc != 2) { cout <<" Usage: display_image ImageToLoadAndDisplay" << endl; return -1; } Mat image; image = imread(argv[1], IMREAD_COLOR); // Read the file if(! image.data ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; } namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display. imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait for a keystroke in the window return 0; }
Plik wykonywalny exe po skompilowaniu naszego przykładu uruchamia się następująco:
Uruchomić cmd.exe w katalogu Debug naszego projektu (tam są skompilowane pliki exe) i w konsoli wpisać <nazwa programu> <nazwa zdjęcia> <enter>
Dopisanie na stałe argumentu dodawanego w linii komend.
W Visual Studio w oknie Solution Explorer, prawy klikamy prawym klawiszem na nazwie projektu, Preferencje w zakładce Debugging w linijce Command Arguments podajemy ścieżkę do pliku graficznego np: c:/NaszPlik.jpg
Teraz za każdym razem, gdy uruchomimy program z poziomu VS będzie załączana komenda, którą jest ścieżka do naszego pliku jpg.