Premiers pas avec opencv
- Charger et afficher une image avec OpenCV
- Construisez et installez OpenCV à partir de la source
- Préparez-vous pour la construction
- Construire et installer
- Tester l’installation
- Premiers pas avec OpenCV 3.1 sous Windows
- Quoi et pourquoi OPENCV ?
- Exemple Hello world en Java
- Obtenir l’image de la webcam
Sur cette page
- Charger et afficher une image avec OpenCV
- Construisez et installez OpenCV à partir de la source
- Préparez-vous pour la construction
- Construire et installer
- Tester l’installation
- Premiers pas avec OpenCV 3.1 sous Windows
- Quoi et pourquoi OPENCV ?
- Exemple Hello world en Java
- Obtenir l’image de la webcam
Charger et afficher une image avec OpenCV
Avec cet exemple, nous verrons comment charger une image couleur à partir du disque et l’afficher à l’aide des fonctions intégrées d’OpenCV. Nous pouvons utiliser les liaisons C/C++, Python ou Java pour y parvenir.
En 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;
}
En 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()
En 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 n’a pas d’équivalents namedwindows ou imshow dans opencv java. Utilisez swing ou swt pour afficher l’image.
Construisez et installez OpenCV à partir de la source
Ceci est un guide étape par étape pour installer OpenCV 3 sur un système Linux basé sur Debian à partir de la source. Les étapes doivent rester les mêmes pour les autres distributions, remplacez simplement les commandes du gestionnaire de packages appropriées lors de l’installation des packages pour la construction.
Remarque : Si vous n’avez pas envie de perdre du temps à créer des choses ou si vous n’aimez pas le terminal, vous pouvez très probablement installer OpenCV à partir de l’interface graphique du gestionnaire de packages Synaptic. Cependant, ces bibliothèques sont souvent obsolètes.
Préparez-vous pour la construction
Exécutez les commandes suivantes dans votre terminal pour installer les packages requis :
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
Les packages suivants sont facultatifs :
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev \
libpng-devlibtiff-dev libjasper-dev libdc1394-22-dev
Exécutez la commande suivante pour obtenir le code source OpenCV et préparer le build :
mkdir ~/src
cd ~/src
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build && cd build
Construire et installer
Nous incluons les exemples dans la construction, mais n’hésitez pas à les laisser de côté. N’hésitez pas non plus à définir d’autres drapeaux et à personnaliser votre construction comme bon vous semble.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON ..
Si CMake n’a pas signalé d’erreurs ou de bibliothèques manquantes, continuez la construction.
make -j$(nproc)
Si aucune erreur n’a été produite, nous pouvons continuer avec l’installation d’OpenCV sur le système :
sudo make install
OpenCV devrait maintenant être disponible sur votre système. Vous pouvez utiliser les lignes suivantes pour savoir où OpenCV a été installé et quelles bibliothèques ont été installées :
pkg-config --cflags opencv # get the include path (-I)
pkg-config --libs opencv # get the libraries path (-L) and the libraries (-l)
Tester l’installation
Nous construisons d’abord les exemples C++ :
cd ~/src/opencv/samples
cmake .
make
Si aucune erreur n’a été produite, exécutez un échantillon quelconque, par ex.
./cpp/cpp-example-edge
Si l’exemple s’exécute, les bibliothèques C++ sont correctement installées.
Ensuite, testez les liaisons Python :
python
>> import cv2
>> print cv2.__version__
Si ces commandes importent OpenCV et impriment la version correcte sans se plaindre, les liaisons Python sont correctement installées.
Félicitations, vous venez de construire et d’installer OpenCV. Bonne programmation !
Pour Mac, reportez-vous ici http://stackoverflow.com/questions/19671827/opencv-installation-on-mac-os-x
Premiers pas avec OpenCV 3.1 sous Windows
Nous installons OpenCV 3.1.0 sur Windows et commençons. Il existe deux façons d’installer OpenCV sur Windows. La première consiste à télécharger le programme d’installation et à l’exécuter. L’autre est de construire à partir de la source.
C’est le moyen le plus simple d’installer OpenCV et de commencer. OpenCV donne des binaires pré-construits à installer sur Windows [ici][1]. Une fois le téléchargement terminé, extrayez-le et installez-le dans le chemin choisi.
ProTip : Assurez-vous que votre chemin OpenCV n’inclut aucun espace. Donc, c’est mieux si vous l’installez simplement dans le répertoire racine C:\ ou D:\
Le problème avec la méthode ci-dessus est que vous ne pouvez pas utiliser les modules opencv_contrib. De plus, il n’est pas fourni avec tous les outils et bibliothèques tiers. Donc, si vous voulez utiliser tout cela, suivez simplement.
Je vais vous expliquer le minimum minimum pour installer OpenCV depuis les sources. Pour un plus avancé, reportez-vous [ici][2].
- Installez [CMake][3].
- Clonez la source OpenCV de https://github.com/Itseez/opencv.git dans un répertoire qui n’a pas d’espaces. Appelons-le “OpenCVdir”. [![entrez la description de l’image ici][4]][4]
- Maintenant, ouvrez CMake GUI et ajoutez votre répertoire source (OpenCVdir) au menu Sources et créez le répertoire dans le menu de construction. Astuce : S’il n’y a pas de répertoire de construction, créez-en un dans votre dossier opencv. [![entrez la description de l’image ici][5]][5]
- Cliquez sur Configurer et sélectionnez votre version du compilateur Visual Studio. J’avais Visual Studio 2013 Professional 32 bits, j’ai donc choisi le compilateur Visual Studio 12. [![entrez la description de l’image ici][6]][6]
Astuce : Vous pouvez télécharger Visual Studio 2013 Professional à partir d’ici. Il est livré avec 30 jours d’essai + 90 jours d’essai prolongé après la connexion.
- Appuyez sur Terminer et CMake chargera automatiquement tous les packages. Vous pouvez ajouter ou supprimer les colis. Appuyez à nouveau sur Configurer.
- Si vous souhaitez construire avec des modules opencv_contrib supplémentaires, vous devez les télécharger depuis [ici][7]. Ensuite, extrayez-les et ajoutez le répertoire opencv_contrib/modules à votre Faites comme ci-dessous. [![entrez la description de l’image ici][8]][8]
- Maintenant, appuyez à nouveau sur Configurer, puis appuyez sur Générer.
- Fermez CMake. Accédez au dossier your_opencv\build et ouvrez le fichier nommé “OpenCV.sln”. - Cela ouvrira Visual Studio. Maintenant, exécutez-le à la fois en mode Debug [![enter image description here][9]][9] et en mode Release [![enter image description here][10]][10].
- Maintenant, dans l’explorateur de solutions en haut à droite de votre Visual Studio, sélectionnez INSTALLER projet et le construire. [![entrez la description de l’image ici][11]][11]
Hourra!! Profitez de votre OpenCV.
Ajout du répertoire d’inclusion OpenCV à la variable PATH des variables d’environnement :
-
Allez dans Propriétés système et cliquez sur Paramètres système avancés. [![entrez la description de l’image ici][12]][12]
-
Maintenant, cliquez sur Variables d’environnement » Chemin » Modifier. [![entrez la description de l’image ici][13]][13]
-
Ici, ajoutez le dossier bin situé dans votre OpenCVdir/build/install/x86/vc**/bin à cette variable. Veillez à ne pas remplacer les valeurs Path existantes.
-
Après cela, vous devez redémarrer votre système pour que les variables d’environnement changent et vous êtes maintenant prêt à partir.
[1] : https://sourceforge.net/projects/opencvlibrary/files/opencv-win/ [2] : http://docs.opencv.org/3.1.0/d3/d52/tutorial_windows_install.html#gsc.tab=0 [3] : http://www.cmake.org/cmake/resources/software.html [4] : http://i.stack.imgur.com/h9NUM.png [5] : http://i.stack.imgur.com/f8OcS.png [6] : http://i.stack.imgur.com/eDtev.png [7] : https://github.com/Itseez/opencv_contrib [8] : http://i.stack.imgur.com/j6VKr.png [9] : http://i.stack.imgur.com/sli3t.png [10] : http://i.stack.imgur.com/qfNeL.png [11] : http://i.stack.imgur.com/MTQpV.png [12] : http://i.stack.imgur.com/18Tro.png [13] : http://i.stack.imgur.com/B8Yr7.png
Quoi et pourquoi OPENCV ?
OpenCV (Open Source Computer Vision Library) est une bibliothèque de logiciels open source de vision par ordinateur et d’apprentissage automatique. Il a été conçu à des fins diverses telles que l’apprentissage automatique, la vision par ordinateur, les algorithmes, les opérations mathématiques, la capture vidéo, le traitement d’images, etc. Au fil des ans, il est devenu très populaire parmi les chercheurs et les développeurs quant à son support sur différentes plates-formes (Windows, Linux , androïd, ios). Il a également un wrapper dans divers langages de programmation renommés. En vertu du contrat de licence, il permet aux entreprises d’utiliser et de modifier le code.
La bibliothèque contient plus de 2500 algorithmes optimisés, qui ont une excellente précision en termes de performances et de vitesse. Ces algorithmes peuvent être utilisés pour détecter et reconnaître des visages, identifier des objets, classer des actions humaines dans des vidéos, suivre des mouvements de caméra, suivre des objets en mouvement, extraire des modèles 3D d’objets, produire des nuages de points 3D à partir de caméras stéréo, assembler des images pour produire une haute résolution image d’une scène entière, trouver des images similaires dans une base de données d’images, supprimer les yeux rouges des images prises au flash, suivre les mouvements des yeux, reconnaître le paysage et établir des marqueurs pour le superposer avec la réalité augmentée, etc. OpenCV a des gens et une communauté formidables impliqués en tant qu’utilisateurs , développeurs et chercheurs, le nombre est supérieur à 47 000 et le nombre estimé de téléchargements dépasse 7 millions. La bibliothèque est largement dans les entreprises professionnelles, les groupes de recherche et d’autres groupes.
De nombreuses entreprises bien établies comme Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota qui utilisent la bibliothèque, il existe de nombreuses startups telles que Applied Minds, VideoSurf et Zeitera, qui utilisent largement OpenCV. Les utilisations déployées d’OpenCV couvrent une gamme allant de l’assemblage d’images de streetview, la détection d’intrusions dans la vidéo de surveillance en Israël, la surveillance de l’équipement minier en Chine, l’aide aux robots pour naviguer et ramasser des objets à Willow Garage, la détection d’accidents de noyade de piscine en Europe, l’exécution d’art interactif dans en Espagne et à New York, en vérifiant la présence de débris sur les pistes en Turquie, en inspectant les étiquettes des produits dans les usines du monde entier jusqu’à la détection rapide des visages au Japon. Il possède des interfaces C++, C, Python, Java et MATLAB et prend en charge Windows, Linux, Android et Mac OS. OpenCV se penche principalement vers les applications de vision en temps réel et tire parti des instructions MMX et SSE lorsqu’elles sont disponibles. Des interfaces CUDA et OpenCL complètes sont activement développées en ce moment. Il existe plus de 500 algorithmes et environ 10 fois plus de fonctions qui composent ou prennent en charge ces algorithmes. OpenCV est écrit nativement en C++ et possède une interface basée sur des modèles qui fonctionne de manière transparente avec les conteneurs STL.
Informations recueillies sur le site officiel
Exemple Hello world en Java
Image OpenCv lue à partir du système de fichiers en 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());
}
}
Obtenir l’image de la webcam
Affichez un flux vidéo en direct provenant d’une webcam à l’aide de la classe VideoCapture d’OpenCV avec Java, C/C++ et 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;
}
#Python 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()