piątek, 10 listopada 2017

OpenCV 3.3 - instalacja i integracja z Visual Studio 2015 w Windows

Zacząłem ćwiczenia z biblioteką OpenCV 3.3. Poniżej przedstawię proces instalacji biblioteki i integracji jej ze środowiskiem Visual Studio 2015.


Instrukcja ta jest tłumaczeniem artykułu Pankaj Pandej. Dodałem tam kilka swoich uwag jakie napotkałem podczas instalacji.

Aby korzystać z biblioteki OpenCV możemy skorzystać ze skompilowanych już bibliotek dll, bądź sami je skompilować w oparciu o źródła. Opis ten dotyczy drugiej opcji. Do instalacji potrzebujemy kilku rzeczy:
  1. Środowisko Visual Studio 2015
  2. Bibliotekę OpenCV - ściągniesz ją tutaj
  3. program CMake - ściągniesz go tutaj.

Instalacja

1. Weryfikacja poprawności instalacji Visual Studio 2015

Po zainstalowaniu Visual Studio upewnimy się, czy wszystko jest poprawne. W tym celu skopiuj i wykonaj poniższy program:
  • Z górnego menu VS wybierasz: File->New->Project
  • W otwartym oknie wybierasz: C++, a w nim: Win32 Console Application. Na dole w polu Name wpisujesz nazwę swojego projektu (ale to możesz tutaj pominąć)
  • Klikasz OK, a następnie Next, odznaczasz opcję "Precompiled header", zaznaczasz pole "Empty project" a następnie klikasz Finish
  • Po prawej stronie w oknie na folderze Source Files klikasz prawym klawiszem myszy i wbierasz Add->New Item. Wybierasz C++ file (.cpp) i na dole w polu Name wpisujesz "test.cpp"
  •  Następnie kopiujesz poniższy program i naciskasz F5, bądź Ctrl+F5
#include "iostream"
using namespace std;

int main() {
    cout << "Hello World\n";
    return 0;
}
Jeśli jesteś w stanie skompilować i uruchomić kod, to do tej pory wszystko jest w porządku.

2. Wyekstraktowanie biblioteki OpenCV do wybranego katalogu. Np. "C:\elektronika\opencv"

 

3. Instalacja CMake, uruchomienie CMake-GUI i konfiguracja środowiska pod kompilację bibliotek w Visual Studio 2015:

 

  • Po zainstalowaniu CMake uruchamiasz CMake-GUI z menu Start.
  • W polu "Where is the source code" wprowadzasz katalog "C:\elektronika\opencv\sources"
  • W polu "Where to build the binaries" wprowadzasz katalog, gdzie mają być utworzone binaria, np: "C:\elektronika\opencv\mybuild"
  • Naciskasz przycisk "Configure". Program prosi cię o wybranie generatora dla tego projektu. Wybierasz go w zależności od wersji programu Visual Studio. W moim przypadku było to "Visual Studio 14 2015 Win64". Pamiętaj, aby wybrać opcję Win64 w przypadku binarii 64-bitowych. Gdybyśmy chcieli wygenerować binaria 32-bitowe, to wybieramy "Visual Studio 14 2015".Jeśli wybierzesz złą wersję generatora (wersję Visual Studio), to może ci się pojawić komunikat taki jak:
Wówczas należy uruchomić polecenie msbuild w wierszu poleceń Windowsa i zobaczysz jaką masz wersję generatora. Aby zacząć konfigurację CMake musisz wyczyścić cache klikając File->Delete Cache. I wybrać wszystko od nowa.
Moja uwaga jest taka - nie udało mi się uruchomić na VS dwóch trybów x64 i x86. Skompilowałem środowisko x64 i mi ono działa, ale x86 nie. Programy pod x86 się kompilują i linkują w VS, ale nie uruchamiają się. Pojawia się komunikat - "The application was unable to start correctly (0xc000007b)", "Aplikacja nie została właściwie uruchomiona (0xc000007b)". Wiem, że wynika to z pomieszania właściwości x64 i x86, ale nie wiem jak to usunąć.
Tak więc przykłady będą dotyczyć tylko x64.
  • Jeśli wszystko jest ok, to nastąpi wygenerowanie plików koniecznych do zbudowania środowiska OpenCV. Zobaczysz ekran z różowym polem i opcjami. Nic tu nie zmieniasz i aby dokończyć proces należy nacisnąć przycisk "Generate".
Jeśli wszystko poszło dobrze to mamy już 80% naszej pracy zrobione. Projekt przygotowany do kompilacji w Visual Studio znajduje się w katalogu C:\elektronika\opencv\mybuild.

4. Skompilowanie wygenerowanych binarii w Visual Studio.

  • Otwórz folder z przygotowanym projektem w Exploratorze Windows: C:\elektronika\opencv\mybuild. Znajduje się tam plik OpenCV.sln. Jest to plik projektu w formacie Visual Studio. Otwórz go. Załaduje się Visual Studio wraz z tym projektem.
  • Naszym zadaniem teraz będzie skompilowanie wygenerowanych binarii dla obu wariantów "Build" oraz "Release" i wygenerowanie bibliotek. Zaczniemy od "Debug". Wersja bitowa bibliotek, zależy od tego co wybrałeś przy generowaniu projektu w CMake. Tutaj okno pokazuje wersję 32bity, bo przy przygotowaniu tego etapu instrukcji wybrałem 32bitowy kompilator w CMake. Ale jak wspomniałem wcześniej na moim 64bit kompie działa mi tylko środowisko 64bit OpenCV.
  • Wybieramy tryb "Debug" a następnie w prawym oknie Solution Explorera na polu "ALL_BUILD" naciskamy prawy przycisk myszy i wybieramy "Build". To spowoduje wygenerowanie plików xxxxx330d.lib, xxxxx330d.exp and xxxxx330d.pdb. Zajmuję to kilkadziesiąt minut, więc zajmij się czymś innym w tym czasie.
  • Następnie zmieniamy tryb kompilacji na "Release" i ponownie budujemy schemat "ALL_BUILD" poprzez polecenie "Build". Wygenerowane zostaną pliki xxxxx330.lib, xxxxx330.exp and xxxxx330.pdb.
  •  I to byłoby wszystko. Zostały utworzone pliki z binariami i bibliotekami, które znajdują się w katalogach odpowiednio: C:\elektronika\opencv\mybuild\install\x86\vc14\bin oraz C:\elektronika\opencv\mybuild\install\x86\vc14\lib. To dla wersji 32bity. Dla OpenCV 64bity będą to katalogi: C:\elektronika\opencv\mybuild\install\x64\...

5. Weryfikacja czy wszystko poszło dobrze.

  • Teraz sprawdzimy czy wszystko poszło w porządku. Napiszemy sobie teraz prosty program, który wyświetli obraz z kamery w laptopie w oknie.
  • Pamiętaj, że przy jakimkolwiek projekcie OpenCV musimy najpierw podać kompilatorowi i linkerowi, gdzie znajdują się kody źródłowe oraz biblioteki OpenCV.
  • W tym celu otwieramy nowe Solution w Visual Studio.





Brak komentarzy:

Prześlij komentarz