Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad opencv är och varför en utvecklare kanske vill använda den.

Det bör också nämna alla stora ämnen inom opencv och länka till relaterade ämnen. Eftersom dokumentationen för opencv är ny kan du behöva skapa initialversioner av relaterade ämnen.

versioner

OpenCV 3

Version Utgivningsdatum
3,2 2016/12/23
3,1 2015/12/18
3,0 2015/06/03
3.0 RC1 2015/04/23
3,0 beta 2014/11/07
3,0 alfa 2014/08/21

OpenCV 2

Version Utgivningsdatum
2.4.13 2016/05/19
2.4.12 2015/07/30
2.4.11 2015/02/25
2.4.10 2014/10/01
2.4.9 2014/04/14
2.3.1 2011-08-17
2.3.0 2011-07-04
2.2.0 2010-12-05
2.1.0 2010-04-06
2.0.0 2009-10-01
1.0.0 2006-10-19

Ladda och visa en bild med OpenCV

Med det här exemplet kommer vi att se hur man laddar en färgbild från disken och visar den med OpenCVs inbyggda funktioner. Vi kan använda C / C ++, Python eller Java-bindningar för att uppnå detta.

I C ++:

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>

#include <iostream>

using namespace cv;

int main(int argc, char** argv) {
    // We'll start by loading an image from the drive
    Mat image = imread("image.jpg", CV_LOAD_IMAGE_COLOR);

    // We check that our image has been correctly loaded
    if(image.empty()) {
        std::cout << "Error: the image has been incorrectly loaded." << std::endl;
        return 0;
    }

    // Then we create a window to display our image
    namedWindow("My first OpenCV window");

    // Finally, we display our image and ask the program to wait for a key to be pressed
    imshow("My first OpenCV window", image);
    waitKey(0);

    return 0;
}

I Python:

import sys
import cv2

# We load the image from disk
img = cv2.imread("image.jpg", cv2.CV_LOAD_IMAGE_COLOR)

# We check that our image has been correctly loaded
if img.size == 0
    sys.exit("Error: the image has not been correctly loaded.")

# We create a window to display our image
cv2.namedwindow("My first OpenCV window")

# We display our image and ask the program to wait until a key is pressed
cv2.imshow("My first OpenCV window", img)
cv2.waitKey(0)

# We close the window
cv2.destroyAllWindows()

I Java:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.highgui.Highgui;
public class Sample{
public static void main (String[] args) {

    //Load native opencv library
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    //Read image from file first param:file location ,second param:color space
    Mat img = imread("image.jpg",CV_LOAD_IMAGE_COLOR);

    //If the image is successfully read.
    if (img.size() == 0) {
        System.exit(1);
    }
}

HighGui har inga namngivna windows eller imshow-ekvivalenter i opencv-java. Använd swing eller swt för att visa bild.

Bygg och installera OpenCV från källan

Detta är en steg-för-steg-guide för att installera OpenCV 3 på ett Debian-baserat Linux-system från källan. Stegen bör förbli desamma för andra distros, bara byt ut de relevanta pakethanterande kommandona när du installerar paket för build.

Obs: Om du inte känner för att slösa bort tid på att bygga saker eller inte tycker om terminalen, kan du troligtvis installera OpenCV från GUI för Synaptic-pakethanteraren. Men dessa bibliotek är ofta föråldrade.

Förbered dig för byggandet

Ge följande kommandon i din terminal för att installera de nödvändiga paketen:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config \
                     libavcodec-dev libavformat-dev libswscale-dev

Följande paket är valfria:

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev \
                     libpng-devlibtiff-dev libjasper-dev libdc1394-22-dev

Ge ut följande kommando för att få OpenCV-källkoden och förbereda build:

mkdir ~/src
cd ~/src
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build && cd build

Bygg och installera

Vi inkluderar exemplen i byggnaden, men känn dig fri att lämna dem ute. Känn dig också fri att ställa in andra flaggor och anpassa din byggnad efter behov.

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D INSTALL_C_EXAMPLES=ON ..

Om CMake inte rapporterade några fel eller saknade bibliotek, fortsätt med build.

make -j$(nproc)

Om inga fel producerades kan vi fortsätta med att installera OpenCV på systemet:

sudo make install

Nu ska OpenCV vara tillgängligt för ditt system. Du kan använda följande rader för att veta var OpenCV installerades och vilka bibliotek som installerades:

pkg-config --cflags opencv  # get the include path (-I)
pkg-config --libs opencv    # get the libraries path (-L) and the libraries (-l)

Testinstallation

Vi bygger först C ++ -exemplen:

cd ~/src/opencv/samples
cmake .
make

Om inga fel har skapats, kör ett prov, t.ex.

./cpp/cpp-example-edge

Om provet körs är C ++ -biblioteken korrekt installerade.

Testa sedan Python-bindningarna:

python
>> import cv2
>> print cv2.__version__

Om dessa kommandon importerar OpenCV och skriver ut rätt version utan att klaga, är Python-bindningarna korrekt installerade.

Grattis, du har precis byggt och installerat OpenCV. Glad programmering!

För Mac, se OpenCV-installation på Mac OS X

Hej världsexempel i Java

OpenCv-bild läst från filsystem i Java

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
 
public class Giris {    
    public static void main(String[] args) {
        //Load native library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        //image container object
        Mat imageArray;
        //Read image from file system
        imageArray=Imgcodecs.imread("C:\\Users\\mesutpiskin\\sample.jpg");
        //Get image with & height
        System.out.println(imageArray.rows());
        System.out.println(imageArray.cols());
    }
}

Få bild från webbkamera

Visa ett live videoflöde taget från en webbkamera med OpenCV: s VideoCapture-klass med Java, C / C ++ och Python.

Java

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.videoio.VideoCapture;
 
public class Camera {
    public static void main(String[] args) {
        // Load Native Library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // image container object
        Mat imageArray = new Mat();
        // Video device acces
        VideoCapture videoDevice = new VideoCapture();
        // 0:Start default video device 1,2 etc video device id
        videoDevice.open(0);
        // is contected
        if (videoDevice.isOpened()) {
        // Get frame from camera
            videoDevice.read(imageArray);
            // image array
            System.out.println(imageArray.toString());
            // Release video device
            videoDevice.release();
        } else {
            System.out.println("Error.");
        }
    }
}

C ++

#include "opencv2/opencv.hpp"
#include "iostream"

int main(int, char**) {
    // open the first webcam plugged in the computer
    cv::VideoCapture camera(0);
    if (!camera.isOpened()) {
        std::cerr << "ERROR: Could not open camera" << std::endl;
        return 1;
    }

    // create a window to display the images from the webcam
    cv::namedWindow("Webcam", CV_WINDOW_AUTOSIZE);

    // this will contain the image from the webcam
    cv::Mat frame;
        
    // capture the next frame from the webcam
    camera >> frame;
    
    // display the frame until you press a key
    while (1) {
        // show the image on the window
        cv::imshow("Webcam", frame);
        // wait (10ms) for a key to be pressed
        if (cv::waitKey(10) >= 0)
            break;
    }
    return 0;
}

Pytonorm

import numpy as np
import cv2

# Video source - can be camera index number given by 'ls /dev/video*
# or can be a video file, e.g. '~/Video.avi'
cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

Komma igång med OpenCV 3.1 på Windows

Vi installerar OpenCV 3.1.0 på Windows och kommer igång. Det finns två sätt att installera OpenCV på windows. Det ena är att ladda ner installationsprogrammet och köra det. Annat är att bygga från källan.

Detta är det enklaste sättet att installera OpenCV och komma igång. OpenCV ger förbyggda binärer att installera på Windows här . När den är klar med nedladdningen, extrahera den och installera på den valda sökvägen.

ProTip: Se till att din OpenCV-sökväg inte innehåller några mellanslag. Så det är bättre om du bara installerar det i C: \ eller D: \ rootkatalogen

Problemet med ovanstående metod är att du inte kan använda opencv_contrib-modulerna. Dessutom kommer det inte med alla tredjepartsverktyg och bibliotek. Så om du vill använda alla dessa, följ bara med.

Jag förklarar det minsta lägsta för att installera OpenCV från källan. För mer avancerad, se här .

  • Installera CMake .
  • Klon OpenCV-källa från https://github.com/Itseez/opencv.git i någon katalog som inte har mellanslag. Låt oss hänvisa till det som "OpenCVdir". ange bildbeskrivning här
  • Öppna nu CMake GUI och lägg till din källkatalog (OpenCVdir) i källmenyn och bygg katalogen till byggmenyn. Tips: Om det inte finns någon build-katalog, skapa en i din opencv-mapp. ange bildbeskrivning här
  • Klicka på Konfigurera och välj din Visual Studio-kompilatorversion. Jag hade Visual Studio 2013 Professional 32-bitars, så jag valde Visual Studio 12-kompilator. ange bildbeskrivning här

Tips: Du kan ladda ner Visual Studio 2013 Professional härifrån. Det kommer med 30-dagars testperiod + 90 dagar förlängd trail efter inloggning.

  • Tryck på Finish och CMake laddar alla paket automatiskt. Du kan lägga till eller ta bort paket. Tryck på Konfigurera igen.
  • Om du vill bygga med extra opencv_contrib-moduler måste du ladda ner dem härifrån . Dra sedan ut dem och lägg till katalogen opencv_contrib / modules i din CMake som visas nedan. ange bildbeskrivning här
  • Tryck nu på Konfigurera igen och tryck sedan på Generera.
  • Stäng CMake. Gå till mappen_opencv \ build och öppna filen med namnet 'OpenCV.sln'. - Det öppnar Visual Studio. Kör det nu i båda felsökningen ange bildbeskrivning här läge och släpp ange bildbeskrivning här läge.
  • Nu, i lösningsutforskaren längst upp till höger i din Visual Studio, välj INSTALLERA projekt och bygg det. ange bildbeskrivning här

Hurra!! Njut av din OpenCV.

Lägga till OpenCV inkludera katalog till miljövariablerna PATH-variabel:

  • Gå till Systemegenskaper och klicka på Avancerade systeminställningar. ange bildbeskrivning här

  • Klicka nu på miljövariabler >> Sökväg >> Redigera. ange bildbeskrivning här

  • Lägg till här bin-mappen som finns i din OpenCVdir / build / install / x86 / vc ** / bin till denna variabel. Var försiktig så att du inte ersätter de befintliga sökvärdena.

  • Efter detta måste du starta om ditt system för att ändra miljövariablerna och nu är du redo att gå.

Vad och varför OPENCV?

OpenCV (Open Source Computer Vision Library) är ett open source datorvisions- och maskininlärningsprogramvarubibliotek. Det byggdes för olika ändamål som maskininlärning, datorsyn, algoritm, matematiska operationer, videoinspelning, bildbehandling etc. Under åren har det blivit mycket populärt bland forskare och utvecklare vad gäller dess stöd i olika plattformar (Windows, Linux , android, ios). Dessutom har den inslag i olika kända programmeringsspråk. Enligt licensavtalet har det tillgång för företag att använda och ändra koden.

Biblioteket innehåller mer än 2500 optimerade algoritmer, som har utmärkt noggrannhet i prestanda och hastighet. Dessa algoritmer kan användas för att upptäcka och känna igen ansikten, identifiera objekt, klassificera mänskliga handlingar i videor, spåra kamerarörelser, spåra rörliga objekt, extrahera 3D-modeller av objekt, producera 3D-punktmoln från stereokameror, sy bilder tillsammans för att producera en hög upplösning bild av en hel scen, hitta liknande bilder från en bilddatabas, ta bort röda ögon från bilder tagna med blixt, följ ögonrörelser, känna igen landskap och etablera markörer för att överlägga den med augmented reality osv. OpenCV har fantastiska människor och samhällen involverade som användare , utvecklare och forskare, är antalet mer än 47 tusen och uppskattat antal nedladdningar överstiger 7 miljoner. Biblioteket finns i stor utsträckning i professionella företag, forskningsgrupper och andra grupper.

Många väletablerade företag som Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota som använder biblioteket, det finns många nystartade företag som Applied Minds, VideoSurf och Zeitera, som använder sig av OpenCV. OpenCV: s distribuerade användningsområden sträcker sig från att sammanfoga streetview-bilder tillsammans, upptäcka intrång i övervakningsvideo i Israel, övervaka gruvutrustning i Kina, hjälpa robotar att navigera och plocka upp föremål i Willow Garage, upptäckt av poolen som drunknar olyckor i Europa, driver interaktiv konst i Spanien och New York, kontrollerar banor för skräp i Turkiet, inspekterar etiketter på produkter i fabriker runt om i världen för snabb ansiktsdetektering i Japan. Den har C ++, C, Python, Java och MATLAB-gränssnitt och stöder Windows, Linux, Android och Mac OS. OpenCV lutar mestadels till realtidsvisionsapplikationer och utnyttjar MMX- och SSE-instruktioner när de är tillgängliga. Ett fullständigt CUDA- och OpenCL-gränssnitt utvecklas aktivt just nu. Det finns över 500 algoritmer och ungefär tio gånger så många funktioner som komponerar eller stöder dessa algoritmer. OpenCV är skriven naturligt i C ++ och har ett mallformat gränssnitt som fungerar sömlöst med STL-containrar.

Information som samlas in från den officiella webbplatsen



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow