C++&Python&C# dreisprachige OpenCV-Entwicklung von Grund auf (1): Umgebungskonfiguration

Vorwort

Da Lao Wang und ich in die Computerbranche in Richtung maschinelles Sehen wechseln möchten, habe ich vor, OpenCV von Grund auf zu lernen. Aber derzeit hat OpenCV zwei offizielle Sprachen, C++ und Python. In C# haben einige Experten die entsprechende OpenCV-Version angepasst. Die aktuellen Merkmale der drei Sprachen sind

  • C++: Die schnellste Ausführungseffizienz, aber die Syntax ist extrem schwierig und die Entwicklung ist extrem schwierig
  • Python: Die Entwicklungseffizienz ist extrem schnell, aber die Laufeffizienz ist extrem langsam. Wenn es nicht gut optimiert ist, ist es mehr als 20-mal langsamer als C++.
  • C#: Die Entwicklungseffizienz ist schnell, nicht viel langsamer als bei Python und die Laufeffizienz ist geringer als bei C++. Es gibt jedoch nur wenige Tutorials zu OpenCV

Gibt es eine Programmiersprache auf der Welt, die die Entwicklungseffizienz von Python und die Leistung von C/C++/Rust aufweist?

Fügen Sie hier eine Bildbeschreibung ein

Welche Bildverarbeitungssprache hat bessere Aussichten: Python, C++, Matlab oder Opencv?

Fügen Sie hier eine Bildbeschreibung ein

Daher habe ich die schwierige, aber richtige Entscheidung getroffen, drei Sprachen gleichzeitig zu entwickeln! Tatsächlich sind es nur drei Sprachen, die gemeinsam dieselbe Funktion entwickeln.

Kursauswahl

Ich suche derzeit nach Tutorials auf Seite B und habe zwei Tutorials mit den höchsten Aufrufen gefunden. Wenn Sie von Grund auf lernen, empfiehlt es sich dennoch, das Video durchzugehen, da Sie viele Konfigurationsdetails und Compiler-Vorgänge verstehen müssen. Das Ziel in diesem Zeitraum besteht darin, dass der Code durchlaufen kann, was den Sieg bedeutet.

[Beste OpenCV-Kursempfehlung der Website 2022B] Vollständiger OpenCV-Kurs vom Einstieg bis zur praktischen Bildverarbeitung (mit Kursmaterialien + Kursnotizen).

Fügen Sie hier eine Bildbeschreibung ein

OpenCV4 C++ Quick Start Video 30 Vorlesungen – Reihensammlung

Fügen Sie hier eine Bildbeschreibung ein

Insgesamt gibt es zwei Klassen, eine in Python und eine in C++. Als Entwickler belege ich auf jeden Fall zuerst den C++-Kurs, denn C++ ist der schwierigste Kurs, solange man ihn ausführen kann.

Umgebungskonfiguration

Python

Ich habe es bereits konfiguriert, daher werde ich den Link direkt hier einfügen.

Nullbasierte Python + OpenCV-Studiennotizen (1-3): Anaconda + vscode + jupyter-Umgebungskonfiguration

C#

Ich habe es auch in C# gemacht

C#- und OpenCV-Entwicklung von Grund auf (0): Vorwort

C++

Dieses Mal werde ich hauptsächlich über C++ sprechen

OpenCV-Installation und Konfiguration der Entwicklungsumgebung (C++)

Download der offiziellen OpenCV-Website

Offizielle OpenCV-Website

Fügen Sie hier eine Bildbeschreibung ein

Entpacken Sie es nach dem Herunterladen

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Erstellen Sie ein neues C++-Projekt

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Testlauf

Ich habe diesen Code von jemand anderem kopiert

OpenCV-Installation und Konfiguration der Entwicklungsumgebung (C++)

#include <opencv2/opencv.hpp>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc.hpp>  
#include<iostream>  
using namespace std;
using namespace cv;
int main()
{
    
    
    Mat image = Mat::zeros(300, 600, CV_8UC3);
    circle(image, Point(300, 200), 100, Scalar(25, 110, 288), -100);
    circle(image, Point(400, 200), 100, Scalar(255, 123, 127), -100);
    imshow("Show Window", image);
    waitKey(0);
    return 0;
}

Wenn das folgende Bild erscheint, ist der Vorgang erfolgreich

Fügen Sie hier eine Bildbeschreibung ein

Csharp-Version

static void Main(string[] args)
{
    
    
    Mat image = new Mat(300,600,MatType.CV_8UC3);

    image.Circle(new Point(300, 200), 100, new Scalar(25, 110, 288), -100);
    image.Circle(new Point(400, 200), 100, new Scalar(255, 123, 127), -100);

    Cv2.ImShow("Show Window",image);
    Cv2.WaitKey(0);
    //Console.WriteLine("Hello, World!");

    Console.ReadKey();
}

Fügen Sie hier eine Bildbeschreibung ein

Python-Version

Python unterscheidet sich völlig von anderen Codes. Die Benennungslogik von C++ und Csharp ist grundsätzlich gleich, aber Python ist etwas einzigartig.

Nachdem ich lange im Internet gesucht hatte, fand ich endlich heraus, wie man zeichnet. Ich weiß nicht, ob Python und C++ im Wesentlichen gleich sind, aber die angezeigten Ergebnisse sind ähnlich.

Python verwendet OpenCV zum Zeichnen von Punkten und Kreisen (2)

import cv2
# python中需要np来辅助
import numpy as np
image =np.zeros((300, 600, 3), np.uint8)
cv2.circle(image,(300,200),100,(25,110,288),-100);
cv2.circle(image,(400,200),100,(255,123,127),-100);
cv2.imshow("Show Window",image)
cv2.waitKey(0)

Fügen Sie hier eine Bildbeschreibung ein

Gitee-Lager

gclove2000 / C++_Csharp_Python_OpenCV

Ich habe ein neues Lagerhaus erstellt, aber es scheint nicht sehr sinnvoll zu sein. Aufgrund der unterschiedlichen Bibliotheksverwaltung der drei Dateien sind die globalen Bibliotheken von C++ und Python sowie Csharp unabhängige Bibliotheken für jedes Projekt. Daher ist es mühsam, häufig neue Projekte zu erstellen. Ich werde hier kein neues Projekt erstellen, sondern einfach den Code einfügen und verwenden.

Zusammenfassen

Dieses Mal habe ich gerade die OpenCV-Umgebung installiert. Das nächste Mal werde ich zurückgehen, um zu lernen, wie man OpenCV in drei Sprachen richtig schreibt.

Ich denke du magst

Origin blog.csdn.net/qq_44695769/article/details/135587859
Empfohlen
Rangfolge