Suche…


Bemerkungen

In diesem Abschnitt erhalten Sie einen Überblick darüber, was opencv ist und warum ein Entwickler es möglicherweise verwenden möchte.

Es sollte auch alle großen Themen in opencv erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für opencv neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Versionen

OpenCV 3

Ausführung Veröffentlichungsdatum
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 alpha 2014-08-21

OpenCV 2

Ausführung Veröffentlichungsdatum
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

Laden und Anzeigen eines Bildes mit OpenCV

In diesem Beispiel wird gezeigt, wie ein Farbbild von der Festplatte geladen und mit den integrierten Funktionen von OpenCV angezeigt wird. Wir können dazu die Bindungen C / C ++, Python oder Java verwenden.

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 hat keine Namensfenster oder Imshow-Entsprechungen in OpenCV Java. Verwenden Sie zum Anzeigen des Bildes die Option sw oder swt.

Erstellen und installieren Sie OpenCV aus dem Quellcode

Dies ist eine schrittweise Anleitung zum Installieren von OpenCV 3 auf einem Debian-basierten Linux-System vom Quellcode aus. Die Schritte sollten für andere Distributionen gleich bleiben. Ersetzen Sie beim Installieren von Paketen für den Build die entsprechenden Befehle des Paketmanagers.

Hinweis: Wenn Sie keine Zeit mit dem Erstellen von Daten verschwenden oder das Terminal nicht mögen, können Sie OpenCV höchstwahrscheinlich über die GUI des Synaptic Package Manager installieren. Diese Bibliotheken sind jedoch oft veraltet.

Bereiten Sie sich auf den Build vor

Geben Sie in Ihrem Terminal die folgenden Befehle ein, um die erforderlichen Pakete zu installieren:

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

Die folgenden Pakete sind optional:

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

Geben Sie den folgenden Befehl ein, um den OpenCV-Quellcode abzurufen und den Build vorzubereiten:

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

Bau und Installation

Wir fügen die Beispiele in den Build ein, können sie aber gerne weglassen. Sie können auch andere Flags setzen und Ihren Build nach Ihren Wünschen anpassen.

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

Wenn CMake keine Fehler oder fehlende Bibliotheken gemeldet hat, fahren Sie mit dem Build fort.

make -j$(nproc)

Wenn keine Fehler erzeugt wurden, können Sie OpenCV auf dem System installieren:

sudo make install

Nun sollte OpenCV für Ihr System verfügbar sein. Sie können die folgenden Zeilen verwenden, um zu wissen, wo OpenCV installiert wurde und welche Bibliotheken installiert wurden:

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

Installation testen

Wir bauen zuerst die C ++ - Beispiele:

cd ~/src/opencv/samples
cmake .
make

Wenn keine Fehler erzeugt wurden, führen Sie eine beliebige Probe aus, z

./cpp/cpp-example-edge

Wenn das Beispiel ausgeführt wird, werden die C ++ - Bibliotheken ordnungsgemäß installiert.

Testen Sie als Nächstes die Python-Bindungen:

python
>> import cv2
>> print cv2.__version__

Wenn diese Befehle OpenCV importieren und die korrekte Version drucken, ohne sich zu beschweren, werden die Python-Bindungen ordnungsgemäß installiert.

Glückwunsch, Sie haben gerade OpenCV gebaut und installiert. Viel Spaß beim Programmieren!

Für Mac siehe OpenCV-Installation unter Mac OS X

Hallo Weltbeispiel in Java

OpenCv-Bild aus Dateisystem in Java gelesen

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

Holen Sie sich ein Bild von der Webcam

Live-Videofeed von einer Webcam mit der VideoCapture-Klasse von OpenCV mit Java, C / C ++ und Python anzeigen.

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

Erste Schritte mit OpenCV 3.1 unter Windows

Wir installieren OpenCV 3.1.0 unter Windows und legen los. Es gibt zwei Möglichkeiten, OpenCV unter Windows zu installieren. Laden Sie das Installationsprogramm herunter und führen Sie es aus. Anderes ist aus Quelle zu bauen.

Dies ist der einfachste Weg, OpenCV zu installieren und loszulegen. OpenCV gibt Pre-Build - Binärdateien auf Windows installieren hier . Wenn der Download abgeschlossen ist, extrahieren Sie ihn und installieren Sie ihn unter dem ausgewählten Pfad.

ProTip: Stellen Sie sicher, dass Ihr OpenCV-Pfad keine Leerzeichen enthält. Es ist also besser, wenn Sie es einfach im Verzeichnis C: \ oder D: \ root installieren

Das Problem bei der obigen Methode ist, dass Sie die opencv_contrib-Module nicht verwenden können. Außerdem enthält es nicht alle Tools und Bibliotheken von Drittanbietern. Wenn Sie also alle verwenden möchten, folgen Sie einfach diesen Anweisungen.

Ich werde das kleinste Minimum für die Installation von OpenCV von der Quelle erklären. Weitere Informationen finden Sie hier .

  • Installieren Sie CMake .
  • Klonen Sie die OpenCV-Quelle von https://github.com/Itseez/opencv.git in einem Verzeichnis, das keine Leerzeichen enthält. Wir nennen es "OpenCVdir". Geben Sie hier die Bildbeschreibung ein
  • Öffnen Sie nun die CMake-GUI, fügen Sie Ihr Quellverzeichnis (OpenCVdir) zum Menü Sources hinzu und erstellen Sie das Verzeichnis zum Build-Menü. Tipp: Wenn kein Build-Verzeichnis vorhanden ist, erstellen Sie ein Verzeichnis in Ihrem opencv-Ordner. Geben Sie hier die Bildbeschreibung ein
  • Klicken Sie auf Konfigurieren und wählen Sie Ihre Visual Studio-Compiler-Version aus. Ich hatte Visual Studio 2013 Professional 32-Bit, also entschied ich mich für den Visual Studio 12-Compiler. Geben Sie hier die Bildbeschreibung ein

Tipp: Sie können Visual Studio 2013 Professional hier herunterladen. Sie erhalten eine 30-tägige Testversion + 90 Tage lang nach der Anmeldung.

  • Klicken Sie auf Fertig stellen, und CMake lädt alle Pakete automatisch. Sie können Pakete hinzufügen oder entfernen. Drücken Sie erneut auf Konfigurieren.
  • Wenn Sie mit zusätzlichen opencv_contrib-Modulen erstellen möchten, müssen Sie sie hier herunterladen. Extrahieren Sie sie und fügen Sie dem CMake das Verzeichnis opencv_contrib / modules hinzu (siehe unten). Geben Sie hier die Bildbeschreibung ein
  • Drücken Sie jetzt erneut auf Konfigurieren und anschließend auf Generieren.
  • Schließen Sie CMake. Wechseln Sie zu Ihrem_opencv \ build-Ordner und öffnen Sie die Datei mit dem Namen 'OpenCV.sln'. - Es wird Visual Studio geöffnet. Führen Sie es jetzt in beiden Debuggen aus Geben Sie hier die Bildbeschreibung ein Modus und Release Geben Sie hier die Bildbeschreibung ein Modus.
  • Wählen Sie im Projektmappen-Explorer rechts oben in Visual Studio Projekt installieren und erstellen Sie es. Geben Sie hier die Bildbeschreibung ein

Hurra!! Viel Spaß mit Ihrer OpenCV.

Hinzufügen des OpenCV-Include-Verzeichnisses zur PATH-Variablen der Umgebungsvariablen:

  • Gehen Sie zu den Systemeigenschaften und klicken Sie auf Erweiterte Systemeinstellungen. Geben Sie hier die Bildbeschreibung ein

  • Klicken Sie nun auf Umgebungsvariablen >> Pfad >> Bearbeiten. Geben Sie hier die Bildbeschreibung ein

  • Fügen Sie hier den bin-Ordner in Ihrer OpenCVdir / build / install / x86 / vc ** / bin dieser Variable hinzu. Achten Sie darauf, die vorhandenen Pfadwerte nicht zu ersetzen.

  • Danach müssen Sie Ihr System neu starten, damit sich die Umgebungsvariablen ändern können. Jetzt können Sie loslegen.

Was und warum OPENCV?

OpenCV (Open Source Computer Vision Library) ist eine Open Source-Bibliothek für Computer Vision und Machine Learning. Es wurde für verschiedene Zwecke wie maschinelles Lernen, Computer Vision, Algorithmus, mathematische Operationen, Videoerfassung, Bildverarbeitung usw. entwickelt. Im Laufe der Jahre ist es bei Forschern und Entwicklern sehr beliebt, da es auf verschiedenen Plattformen (Windows, Linux) unterstützt wird android ios). Es hat auch Wrapper in verschiedenen bekannten Programmiersprachen. Im Rahmen der Lizenzvereinbarung können Unternehmen den Code nutzen und ändern.

Die Bibliothek enthält mehr als 2500 optimierte Algorithmen, die eine hervorragende Genauigkeit in Bezug auf Leistung und Geschwindigkeit bieten. Diese Algorithmen können verwendet werden, um Gesichter zu erkennen und zu erkennen, Objekte zu identifizieren, menschliche Aktionen in Videos zu klassifizieren, Kamerabewegungen zu verfolgen, sich bewegende Objekte zu verfolgen, 3D-Modelle von Objekten zu extrahieren, aus Stereokameras 3D-Punktwolken zu erzeugen und Bilder zusammenzufügen, um eine hohe Auflösung zu erzielen Bild einer ganzen Szene, ähnliche Bilder aus einer Bilddatenbank finden, rote Augen von Bildern entfernen, die mit Blitz aufgenommen wurden, Augenbewegungen folgen, Szenerie erkennen und Markierungen festlegen, um sie mit Augmented Reality zu überlagern usw. OpenCV hat als Benutzer großartige Menschen und eine große Gemeinschaft Die Zahl der Entwickler und Forscher liegt bei über 47.000, und die Anzahl der Downloads liegt bei über 7 Millionen. Die Bibliothek ist umfangreich in professionellen Unternehmen, Forschungsgruppen und anderen Gruppen tätig.

Viele etablierte Unternehmen wie Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda und Toyota, die die Bibliothek beschäftigen, gibt es viele Startups wie Applied Minds, VideoSurf und Zeitera, die OpenCV umfassend einsetzen. Die eingesetzten Einsatzbereiche von OpenCV reichen vom Zusammenfügen von Streetview-Bildern über das Auffinden von Eindringlingen in Überwachungsvideos in Israel, die Überwachung von Minenausrüstung in China, die Unterstützung von Robotern beim Navigieren und Aufnehmen von Objekten in der Willow Garage, das Erkennen von Unfällen durch Schwimmbäder in Europa sowie das Ausführen interaktiver Kunst in Spanien und New York, die Landebahnen auf Trümmer in der Türkei untersuchen, Etiketten auf Produkten in Fabriken auf der ganzen Welt bis hin zu einer schnellen Gesichtserkennung in Japan überprüfen. Es verfügt über C ++ -, C-, Python-, Java- und MATLAB-Schnittstellen und unterstützt Windows, Linux, Android und Mac OS. OpenCV orientiert sich hauptsächlich an Echtzeit-Vision-Anwendungen und nutzt die MMX- und SSE-Anweisungen, sofern verfügbar. Eine voll funktionsfähige CUDA- und OpenCL-Schnittstelle wird derzeit aktiv entwickelt. Es gibt über 500 Algorithmen und etwa zehnmal so viele Funktionen, die diese Algorithmen bilden oder unterstützen. OpenCV wurde in C ++ geschrieben und verfügt über eine Schnittstelle mit Vorlagen, die nahtlos mit STL-Containern funktioniert.

Auf der offiziellen Website gesammelte Informationen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow