Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -

OpenCV-Python ist eine einfach zu entwickelnde Umgebung für die Entwicklung von Algorithmen, die OpenCV verwenden. Hier ist ein Hinweis, der Ihnen einen Hinweis gibt, wenn Sie den dort entwickelten Algorithmus nach C ++ portieren.

Für OpenCV-Python: Verwendung des Typs numpy.array → Ersatz durch cv :: Mat Typ numpy.array typspezifische Methode Ersatz durch die Methode vom Typ cv :: Mat.

Diese Art des Umschreibens ist einfach. Auch wenn Sie nicht über genügend Erfahrung verfügen, um Bildverarbeitungsalgorithmen zu erstellen, können Sie OpenCV-Python-Code in OpenCV C ++ umschreiben, wenn Sie Erfahrung mit C ++ haben.

numpy.array cv::Mat wichtiger Punkt
a = np.ones((h,w), dtype=np.uint8) cv::Mat a=cv::Mat::ones(cv::Size(w, h), cv::CV_8U);
shape size Form ist[h, w, channel]Bestellung oder[h, w]
img.shape cv::Size(img.rows, img.cols)
img = cv2.imread("lena.png "); imgRGB=img[:, :, ::-1] cv::Mat img = cv::imread("lena.png "); cv2.imread()Ist in der Reihenfolge der BGR
import pylab as plt; plt.imshow(imgRGB) cv::imshow("title", img); matplotlib imshow()Ist Matlabs Imshow()Nahe bei
a[:, :] = 0 a.setTo(0); Für Farbbilder a[:, :, :] = 0 。setTo()Argument ist eine Konstante
a[b>127] = 255 a.setTo(255, b > 127);
a = b+0 b.copyTo(a); In numpy nur ein=Wenn b, dann ist a ein Alias für b und die Substanz ist dieselbe.
a[c==d] = b[c==d] b.copyTo(a, c==d);
a = np.array(b, dtype=np.float32)/255.0 b.convertTo(a, CV_32F, 1.0/255);

OpenCV-Python-Codebeispiel

python


# -*- coding: utf-8 -*-

import cv2
import numpy as np
img = cv2.imread("lena.png ", 0)

b = np.zeros(img.shape[:2], dtype=np.uint8)
b[img > 128] = 255
cv2.imwrite("junk.png ", b)

Beispiel für einen neu geschriebenen C ++ - Quellcode

python


#include <opencv2/opencv.hpp>
int main(int argc, char* argv[]) {
    cv::Mat img= cv::imread("lena.png ", 0);
    cv::Mat b = cv::Mat::zeros(cv::Size(img.rows, img.cols), CV_8U);
    b.setTo(255, img>127);
    cv::imwrite("junk_cpp.png ", b);
}

Ausführungsergebnisbild junk.png


Nützliche Funktionen in numpy numpy.rot90(m, k=1, axes=(0, 1) (https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.rot90.html)

Recommended Posts

Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben. 3-Überlassen Sie die grafische Darstellung matplotlib-
Verwenden wir nach Überprüfung mit Python eine Skriptsprache für eine komfortable C ++ - C ++ - Implementierung
Verwenden wir eine Skriptsprache für ein komfortables C ++ - Leben. 2 Generieren Sie automatisch eine C ++ - Quelle
Verwenden wir die Skriptsprache für ein komfortables C ++ - Leben. 4 - Verwenden wir die eigene C ++ - Bibliothek aus der Skriptsprache. -
Verwenden wir eine Skriptsprache für ein komfortables C ++ - Leben. 6-Wie wäre es mit der Entwicklung eines Programms als Bibliothek für Python?
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben. 5 - Verwenden Sie die integrierte Spyder-Umgebung, um numerische Daten zu überprüfen.
[Einführung in Python] Hochgeschwindigkeits-Einführung in Python für vielbeschäftigte C ++ - Programmierer
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
[Python] Organisieren der Verwendung für Anweisungen
Verwendung von "deque" für Python-Daten
Eine Einführung in Python für C-Sprachprogrammierer
Ich habe einen Docker-Container erstellt, um JUMAN ++, KNP, Python (für pyKNP) zu verwenden.
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 9 Verwendung aus der C-Sprache
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 3 Schreiben Sie in eine Datei
[Python] Es war sehr praktisch, die Python-Klasse für das ROS-Programm zu verwenden.
Portierte einen naiven Homebrew-Sprachcompiler nach Python
Schreiben von Protokollen in eine CSV-Datei (Python, C-Sprache)
Wrap C ++ mit Cython zur Verwendung von Python
Ich habe ein Modul in C-Sprache erstellt, das von Python geladene Bilder filtert
C-Sprache zum Sehen und Erinnern Teil 3 Rufen Sie die C-Sprache aus Python auf (Argument) c = a + b
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 7 Erstellen eines Moduls
Verwendung von pip, einem Paketverwaltungssystem, das für die Verwendung von Python unverzichtbar ist
[Python] Ich möchte nur den Index verwenden, wenn ich eine Liste mit einer for-Anweisung schleife
Ein Python-Skript, das die Start- / Endzeit des Mac für die Anwesenheitsverwaltung verwenden möchte
Rufen Sie C-Sprachfunktionen von Python auf, um mehrdimensionale Arrays auszutauschen
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 4 Verwenden Sie die GUI
python3: Verwendung der Flasche (2)
Ein Weg zum mittleren Python
[Python] Verwendung von Matplotlib, einer Bibliothek zum Zeichnen von Diagrammen
[Python] Verwenden Sie eine Zeichenfolgenfolge
[Python] Verwendung von Liste 1
Verwendung der Methode __call__ in der Python-Klasse
Hinweise zum Einbetten der Skriptsprache in Bash-Skripte
Hinweis 2 zum Einbetten der Skriptsprache in ein Bash-Skript
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
So implementieren Sie vorläufig einen Fortschrittsbalken in einer Skriptsprache
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden
Wie benutzt man Python Argparse?
So definieren Sie mehrere Variablen in einer Python for-Anweisung
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
Wie nutzt man maschinelles Lernen für die Arbeit? 03_Python-Codierungsverfahren
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Ich wusste nicht, wie ich die [Python] für die Anweisung verwenden sollte
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Python] Verwendung von input ()
Versuchen Sie, eine Sprache auszuwählen
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes