opencv Tutorial
Iniziare con opencv
Ricerca…
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 |
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.
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.
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());
}
}
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".
- 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.
- 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.
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.
- 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 modalità e rilascio modalità.
- Ora, nella soluzione explorer in alto a destra in Visual Studio, seleziona INSTALLA progetto e compila.
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.
Ora, fai clic su Variabili d'ambiente >> Percorso >> Modifica.
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.
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