Base OpenCV installation
jag har arbetat med OpenCV version 3 på Windows och Ubuntu tidigare och gjorde en enda installation i OSx för några år sedan.
om du landade här arbetar du förmodligen på ett Mac-baserat system och ser fram emot att arbeta med OpenCV. Om så är fallet, kolla min tidigare artikel om att få HomeBrew installerat på ditt system.
efter att ha installerat HomeBrew är vårt nästa steg på denna resa att få den senaste versionen av OpenCV. OpenCV 4 släpptes i slutet av 2018 och ger några nya funktioner som huvudsakligen är relaterade till djupt lärande.
vi är inte särskilt intresserade av dessa funktioner (för tillfället), men vi får bara den senaste versionen så att vi inte behöver kämpa i framtiden med uppdateringar.
Rekommenderad läsning
det finns en bra webbplats av Adrian Rosebrock där du kan hitta massor av coola exempel på olika applikationer av OpenCV, samt installationsanvisningar.
för detta specifika scenario, eftersom vi bara fokuserar på Java, följer vi de enkla instruktionerna från följande webbplats (https://opencv-java-tutorials.readthedocs.io/en/latest/01-installing-opencv-for-java.html), för att ändra HomeBrew-formeln för OpenCV och installera den kommer Java-kompatibilitet.
installationsprocess
för att installera OpenCV (med Java-stöd) via Homebrew måste du redigera opencv-formeln i Homebrew, för att lägga till stöd för Java: brew edit opencv
i textredigeraren som öppnas, ändra raden: -DBUILD_opencv_java=OFF
till -DBUILD_opencv_java=ON
.
se också till att du har ant installerat i ditt system, om inte, installera det med HomeBrew också.
brew install ant
efter att ha ändrat bryggkommandot och installerat ant kan du effektivt installera OpenCV: brew install --build-from-source opencv
installationen tar några minuter. Få inte panik!
kommandot brew install har byggt OpenCV från källkoden (som faktiskt finns på GitHub). Obs OpenCV är utvecklad i C++, men de erbjuder massor av omslag på olika språk, även för mobil och för webbläsare. Denna byggprocessen kommer att generera både wrapper biblioteket .jar-fil, och det inhemska dylib-biblioteket, som vi behöver referera från vår utvecklingsmiljö.
när installationen av OpenCV är klar hittar du de nödvändiga filerna i sökvägen nedan:
/usr/local/Cellar/opencv/4.3.0_3/share/java/opencv4
- notera den här sökvägen varierar för olika OpenCV-versioner
ställa in IDE
jag kommer att använda Eclipse för utveckling. Så jag måste skapa ett nytt Java-projekt från början.
skapa sedan en tom huvudklass.
högerklicka på projektnamnet i project explorer och klicka på Egenskaper.
gå till Java Build Path på den vänstra menyn.
klicka på Lägg till externa burkar knappen på höger sida, och webbläsare för jar-fil som genereras under OpenCV Build förklaras ovan.
Välj Jar-filen och klicka på Öppna.
Klicka nu på pilen till vänster om burken du just har importerat, klicka sedan på native Library location och slutligen klicka på Redigera… knappen på höger sida.
skriv in sökvägen för dylib-filen i dialogrutan
/usr/local/Cellar/opencv/4.3.0_3/dela/java / opencv4
klicka slutligen på Apply och stäng.
du är klar med att importera OpenCV till ditt Java-projekt.
du måste nu initiera biblioteket med följande kommando innan du använder någon OpenCV-funktion.
systemet.loadLibrary (kärna.NATIVE_LIBRARY_NAME);
denna kärna bibliotek kommer från öppen CV, så om du redan har .jar i ditt projekt, det kommer automatiskt att försöka importera det från org.opencv.kärna.Kärna;
en enkel kontroll kommer att skapa en identitetsmatris och dumpa den ut till konsolen.
matta matta = matta.öga (3,3, CvType. CV_8UC1);
systemet.ut.println (”mat =” + Matta.dump() );
du bör få följande utgång i terminalen:
mat =
det betyder att du är klar med OpenCV-installationen och du kan börja utveckla din Datorvisionsbaserade applikation i Java :D.
viktigt:
se till att du kompilerar och kör ditt nya projekt med samma JDK-version som biblioteket sammanställdes, annars kan du stöta på JRE-kompatibilitetsproblem. (dvs. Biblioteket sammanställdes med en nyare JRE, så ditt nya projekt kommer inte att kunna använda opencvs funktioner från den genererade Jar-filen.