opencvIniziare con opencv

Osservazioni

Questa sezione fornisce una panoramica di ciò che opencv è, e perché uno sviluppatore potrebbe voler usarlo.

Dovrebbe anche menzionare tutti i soggetti di grandi dimensioni all'interno di opencv e collegarsi agli argomenti correlati. Poiché la documentazione di opencv è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Versioni

OpenCV 3

Versione Data di rilascio
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

Versione Data di rilascio
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

Costruisci e installa OpenCV dal sorgente

Questa è una guida passo passo all'installazione di OpenCV 3 su un sistema Linux basato su Debian dalla sorgente. I passaggi dovrebbero rimanere gli stessi per le altre distro, basta sostituire i comandi rilevanti del gestore pacchetti quando si installano i pacchetti per la build.

Nota: se non hai voglia di perdere tempo a costruire cose o non gradire il terminale, molto probabilmente installerai OpenCV dalla GUI del gestore di pacchetti Synaptic. Tuttavia, queste librerie sono spesso obsolete.

Preparati per la costruzione

Immettere i seguenti comandi nel terminale per installare i pacchetti richiesti:

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
 

I seguenti pacchetti sono opzionali:

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

Emettere il seguente comando per ottenere il codice sorgente OpenCV e preparare la build:

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

Costruisci e installa

Includiamo gli esempi nella build, ma sentitevi liberi di lasciarli fuori. Sentiti libero di impostare altri flag e personalizza la tua build come preferisci.

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

Se CMake non ha segnalato errori o librerie mancanti, continuare con la compilazione.

make -j$(nproc)
 

Se non sono stati prodotti errori, possiamo continuare con l'installazione di OpenCV nel sistema:

sudo make install
 

Ora OpenCV dovrebbe essere disponibile per il tuo sistema. È possibile utilizzare le seguenti linee per sapere dove è stato installato OpenCV e quali librerie sono state installate:

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

Test di installazione

Per prima cosa costruiamo gli esempi C ++:

cd ~/src/opencv/samples
cmake .
make
 

Se non sono stati prodotti errori, eseguire un campione qualsiasi, ad es

./cpp/cpp-example-edge
 

Se l'esempio viene eseguito, le librerie C ++ vengono installate correttamente.

Successivamente, prova i binding Python:

python
>> import cv2
>> print cv2.__version__
 

Se questi comandi importano OpenCV e stampano la versione corretta senza lamentarsi, i collegamenti Python vengono installati correttamente.

Congratulazioni, hai appena creato e installato OpenCV. Buona programmazione!

Per Mac fai riferimento qui all'installazione di OpenCV su Mac OS X.

Ottieni l'immagine dalla webcam

Visualizza un feed video live prelevato da una webcam utilizzando la classe VideoCapture di OpenCV con Java, C / C ++ e Python.

Giava

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;
}
 

Pitone

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()
 

Guida introduttiva a OpenCV 3.1 su Windows

Installiamo OpenCV 3.1.0 su Windows e iniziamo. Ci sono due modi per installare OpenCV su Windows. Uno è quello di scaricare il programma di installazione ed eseguirlo. Altro è costruire dalla fonte.

Questo è il modo più semplice per installare OpenCV e iniziare. OpenCV fornisce binari pre-compilazione da installare su Windows qui . Al termine del download, estrailo e installalo nel percorso scelto.

ProTip: assicurati che il tuo percorso OpenCV non contenga spazi. Quindi, è meglio installarlo nella directory C: \ o D: \ root

Il problema con il metodo precedente è che non è possibile utilizzare i moduli opencv_contrib. Inoltre, non viene fornito con tutti gli strumenti e le librerie di terze parti. Quindi, se vuoi usare tutti questi, segui.

Spiegherò il minimo minimo per installare OpenCV dal sorgente. Per uno più avanzato, fare riferimento qui .

  • Installa CMake .
  • Clona OpenCV source da https://github.com/Itseez/opencv.git in qualche directory che non ha spazi. Si riferisce ad esso come "OpenCVdir". inserisci la descrizione dell'immagine qui
  • Ora apri la GUI di CMake e aggiungi la tua directory sorgente (OpenCVdir) al menu Sources e crea la directory nel menu di build. Suggerimento: se non ci sono directory di build, crearne una nella cartella opencv. inserisci la descrizione dell'immagine qui
  • Fare clic su Configura e selezionare la versione del compilatore di Visual Studio. Avevo Visual Studio 2013 Professional a 32 bit, quindi ho scelto il compilatore Visual Studio 12. inserisci la descrizione dell'immagine qui

Suggerimento: puoi scaricare Visual Studio 2013 Professional da qui. Viene fornito con 30 giorni di prova + 90 giorni di traccia estesa dopo l'accesso.

  • Premere Fine e CMake caricherà automaticamente tutti i pacchetti. È possibile aggiungere o rimuovere pacchetti. Premere nuovamente Configura.
  • Se vuoi costruire con moduli opencv_contrib extra, devi scaricarli da qui . Quindi, estraili e aggiungi la directory opencv_contrib / modules al tuo CMake come mostrato di seguito. inserisci la descrizione dell'immagine qui
  • Ora premere nuovamente Configura e quindi premere Genera.
  • Chiudi CMake. Vai alla tua cartella_opencv \ build e apri il file denominato "OpenCV.sln". - Si aprirà Visual Studio. Ora eseguilo in entrambi i debug inserisci la descrizione dell'immagine qui modalità e rilascio inserisci la descrizione dell'immagine qui modalità.
  • Ora, nella soluzione explorer in alto a destra in Visual Studio, seleziona INSTALLA progetto e compila. inserisci la descrizione dell'immagine qui

Evviva !! Goditi il ​​tuo OpenCV.

L'aggiunta di OpenCV include la variabile PATH della variabile di ambiente nella directory:

  • Vai a Proprietà del sistema e fai clic su Impostazioni di sistema avanzate. inserisci la descrizione dell'immagine qui

  • Ora, fai clic su Variabili d'ambiente >> Percorso >> Modifica. inserisci la descrizione dell'immagine qui

  • Qui, aggiungi la cartella bin situata in OpenCVdir / build / install / x86 / vc ** / bin a questa variabile. Fai attenzione a non sostituire i valori Path esistenti.

  • Dopo questo, è necessario riavviare il sistema affinché le variabili di Ambiente cambino e ora sei pronto per partire.

Ciao esempio mondiale in Java

Immagine OpenCv letta dal file system in 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());
    }
}
 

Carica e visualizza un'immagine con OpenCV

Con questo esempio, vedremo come caricare un'immagine a colori dal disco e visualizzarla utilizzando le funzioni integrate di OpenCV. Possiamo usare i collegamenti C / C ++, Python o Java per realizzare questo.

In 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;
}
 

In 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()
 

In 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 non ha nomi o equivalenti predefiniti in opencv java. Utilizzare swing o swt per visualizzare l'immagine.

Cosa e perché OPENCV?

OpenCV (Open Source Computer Vision Library) è una libreria open source di computer vision e di apprendimento automatico. È stato costruito per vari scopi come machine learning, computer vision, algoritmo, operazioni matematiche, acquisizione di video, elaborazione di immagini, ecc. Nel corso degli anni è diventato molto popolare tra i ricercatori e gli sviluppatori per il supporto in diverse piattaforme (Windows, Linux , android, ios). Inoltre ha wrapper in vari rinomati linguaggi di programmazione. In base all'accordo di licenza, ha accesso alle aziende per utilizzare e modificare il codice.

La libreria contiene oltre 2500 algoritmi ottimizzati, che hanno un'eccellente accuratezza in termini di prestazioni e velocità. Questi algoritmi possono essere utilizzati per rilevare e riconoscere i volti, identificare oggetti, classificare azioni umane nei video, tracciare movimenti della telecamera, tracciare oggetti in movimento, estrarre modelli 3D di oggetti, produrre nuvole di punti 3D da telecamere stereo, unire immagini per produrre un'alta risoluzione immagine di un'intera scena, trova immagini simili da un database di immagini, rimuovi gli occhi rossi dalle immagini scattate con il flash, segui i movimenti degli occhi, riconosci i paesaggi e stabilisci i marcatori per sovrapporli alla realtà aumentata, ecc. OpenCV ha grandi persone e comunità coinvolte come utenti , sviluppatori e ricercatori, il numero è di oltre 47 mila e il numero stimato di download supera i 7 milioni. La biblioteca è ampiamente presente in aziende professionali, gruppi di ricerca e altri gruppi.

Molte aziende affermate come Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota che impiegano la libreria, ci sono molte startup come Applied Minds, VideoSurf e Zeitera, che fanno ampio uso di OpenCV. Gli usi implementati di OpenCV spaziano dalla raccolta di immagini streetview, alla rilevazione di intrusioni in video di sorveglianza in Israele, al monitoraggio delle apparecchiature minerarie in Cina, all'aiuto dei robot alla navigazione e alla raccolta di oggetti a Willow Garage, all'individuazione di incidenti di annegamento in Europa, alla realizzazione di arte interattiva in Spagna e New York, controllando le piste per i detriti in Turchia, ispezionando le etichette sui prodotti nelle fabbriche di tutto il mondo per una rapida individuazione dei volti in Giappone. Ha interfacce C ++, C, Python, Java e MATLAB e supporta Windows, Linux, Android e Mac OS. OpenCV si rivolge principalmente alle applicazioni di visione in tempo reale e sfrutta le istruzioni MMX e SSE quando disponibili. Al momento sono attivamente sviluppate interfacce CUDA e OpenCL complete di funzionalità. Esistono oltre 500 algoritmi e circa 10 volte più funzioni che compongono o supportano tali algoritmi. OpenCV è scritto in modo nativo in C ++ e ha un'interfaccia basata su modelli che funziona perfettamente con i contenitori STL.

Informazioni raccolte dal sito web ufficiale