opencvCommencer avec opencv


Remarques

Cette section fournit une vue d'ensemble de ce qu'est une ouverture, et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets à l’intérieur du forum, et les relier aux sujets connexes. La documentation de opencv étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Versions

OpenCV 3

Version Date de sortie
3.2 2016-12-23
3.1 2015-12-18
3.0 2015-06-03
3.0 RC1 2015-04-23
3.0 bêta 2014-11-07
3.0 alpha 2014-08-21

OpenCV 2

Version Date de sortie
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

Construire et installer OpenCV à partir des sources

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, il suffit de remplacer les commandes du gestionnaire de packages pertinentes lors de l'installation des packages pour la génération.

Remarque: Si vous n'avez pas envie de perdre du temps à créer des éléments ou à ne pas aimer le terminal, vous pouvez très probablement installer OpenCV à partir de l'interface graphique du gestionnaire de paquets Synaptic. Cependant, ces bibliothèques sont souvent obsolètes.

Préparez-vous à la construction

Emettez 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
 

Emettez la commande suivante pour obtenir le code source OpenCV et préparer la génération:

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 build comme vous le souhaitez.

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, poursuivez la construction.

make -j$(nproc)
 

Si aucune erreur n'a été produite, nous pouvons continuer à installer OpenCV sur le système:

sudo make install
 

Maintenant, OpenCV devrait être disponible pour 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)
 

Test d'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, par exemple

./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, alors les liaisons Python sont correctement installées.

Félicitations, vous venez de construire et d'installer OpenCV. Bonne programmation!

Pour Mac, reportez-vous ici à l' installation d'OpenCV sur Mac OS X

Obtenez une image de 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()
 

Premiers pas avec OpenCV 3.1 sous Windows

Nous installons OpenCV 3.1.0 sous Windows et commençons. Il existe deux manières d’installer OpenCV sur Windows. L'une consiste à télécharger le programme d'installation et à l'exécuter. L'autre consiste à construire à partir des sources.

C'est le moyen le plus simple d'installer OpenCV et de commencer. OpenCV fournit des fichiers binaires de pré-compilation à installer sur Windows ici . Une fois le téléchargement terminé, extrayez-le et installez-le sur 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. En outre, il ne vient pas avec tous les outils et bibliothèques tiers. Donc, si vous voulez utiliser tout cela, suivez simplement.

Je vous expliquerai le minimum pour installer OpenCV depuis la source. Pour plus avancé, référez-vous ici .

  • Installez CMake .
  • Clone source OpenCV de https://github.com/Itseez/opencv.git dans un répertoire qui n'a pas d'espaces. Appelons-le "OpenCVdir". entrer la description de l'image ici
  • Maintenant, ouvrez l'interface graphique de CMake et ajoutez votre répertoire source (OpenCVdir) au menu Sources et créez le répertoire dans le menu de génération. Conseil: S'il n'y a pas de répertoire de compilation, créez-en un dans votre dossier opencv. entrer la description de l'image ici
  • Cliquez sur Configurer et sélectionnez votre version du compilateur Visual Studio. J'ai eu Visual Studio 2013 Professional 32 bits, j'ai donc choisi le compilateur Visual Studio 12. entrer la description de l'image ici

Conseil: vous pouvez télécharger Visual Studio 2013 Professional à partir d'ici. Il est livré avec 30 jours d'essai + 90 jours de prolongation après s'être connecté.

  • Appuyez sur Terminer et CMake chargera tous les paquets automatiquement. Vous pouvez ajouter ou supprimer des packages. Appuyez à nouveau sur Configure.
  • Si vous voulez construire avec des modules opencv_contrib supplémentaires, vous devez les télécharger ici . Ensuite, extrayez-les et ajoutez le répertoire opencv_contrib / modules à votre CMake comme indiqué ci-dessous. entrer la description de l'image ici
  • Maintenant, appuyez à nouveau sur Configurer, puis appuyez sur Générer.
  • Fermer CMake. Allez dans le dossier your_opencv \ build et ouvrez le fichier nommé 'OpenCV.sln'. - Il va ouvrir Visual Studio. Maintenant, lancez-le dans les deux Debug entrer la description de l'image ici mode et libération entrer la description de l'image ici mode.
  • Maintenant, dans l'explorateur de solutions en haut à droite de Visual Studio, sélectionnez le projet INSTALL et construisez-le. entrer la description de l'image ici

Hourra!! Profitez de votre OpenCV.

L'ajout du répertoire d'inclusion OpenCV à la variable PATH de la variable d'environnement:

  • Accédez à Propriétés système et cliquez sur Paramètres système avancés. entrer la description de l'image ici

  • Maintenant, cliquez sur Variables d'environnement >> Chemin >> Modifier. entrer la description de l'image ici

  • Ici, ajoutez le dossier bin situé dans votre dossier OpenCVdir / build / install / x86 / vc ** / bin à cette variable. Veillez à ne pas remplacer les valeurs de chemin existantes.

  • Après cela, vous devez redémarrer votre système pour que les variables d'environnement changent et que vous êtes maintenant prêt.

Bonjour exemple mondial en java

Image OpenCv lue depuis le 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());
    }
}
 

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. Pour ce faire, nous pouvons utiliser les liaisons C / C ++, Python ou Java.

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 aucune fenêtre nommée ni équivalent dans opencv java. Utilisez swing ou swt pour afficher l'image.

Quoi et pourquoi OPENCV?

OpenCV (Open Source Computer Vision Library) est une bibliothèque de logiciels et de logiciels d'apprentissage automatique. Il a été conçu pour divers objectifs tels que l'apprentissage automatique, la vision par ordinateur, l'algorithme, les opérations mathématiques, la capture vidéo, le traitement d'images, etc. , android, ios). En outre, il a enveloppé dans divers langages de programmation renommés. Dans le cadre du contrat de licence, les entreprises peuvent accéder au code et le modifier.

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 image d'une scène entière, trouver des images similaires à partir d'une base de données d'images, supprimer les yeux rouges des images prises, suivre les mouvements oculaires, reconnaître les décors et établir des marqueurs pour la superposer à la réalité augmentée. , les développeurs et les chercheurs, le nombre est plus de 47 000 et le nombre estimé de téléchargements dépasse 7 millions. La bibliothèque est largement constituée de sociétés professionnelles, de groupes de recherche et d’autres groupes.

De nombreuses entreprises bien établies telles que Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda et Toyota qui emploient la bibliothèque, ainsi que de nombreuses startups telles que Applied Minds, VideoSurf et Zeitera, utilisent largement OpenCV. Les utilisations déployées d'OpenCV s'étendent de l'assemblage d'images StreetView, à la détection d'intrusions dans la vidéo de surveillance en Israël, à la surveillance des équipements miniers en Chine, à la détection des accidents de noyade en Europe et à l'art interactif. L'Espagne et New York vérifient les pistes en Turquie et inspectent les étiquettes des produits dans les usines du monde entier pour détecter rapidement les visages au Japon. Il possède des interfaces C ++, C, Python, Java et MATLAB et supporte Windows, Linux, Android et Mac OS. OpenCV s'appuie principalement sur les applications de vision en temps réel et tire parti des instructions MMX et SSE lorsqu'elles sont disponibles. Des interfaces complètes CUDA et OpenCL sont en cours de développement. Il existe plus de 500 algorithmes et environ 10 fois plus de fonctions qui composent ou supportent 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 collectées sur le site officiel