Développement OpenCV trilingue C++&Python&C# from scratch (1) : configuration de l'environnement

Préface

Parce que Lao Wang et moi souhaitons passer à l'industrie informatique en direction de la vision industrielle, je prévois de commencer à apprendre OpenCV à partir de zéro. Mais actuellement OpenCV a deux langages officiels, C++ et Python. En C#, certains experts ont adapté la version OpenCV correspondante. Les caractéristiques actuelles des trois langues sont

  • C++ : l'efficacité d'exécution la plus rapide, mais la syntaxe est extrêmement difficile et le développement est extrêmement difficile
  • Python : L'efficacité du développement est extrêmement rapide, mais l'efficacité de l'exécution est extrêmement lente. S'il n'est pas bien optimisé, il est plus de 20 fois plus lent que le C++.
  • C# : l'efficacité du développement est rapide, pas beaucoup plus lente que Python, et l'efficacité d'exécution est inférieure à celle du C++. Mais il existe peu de tutoriels liés à OpenCV

Existe-t-il un langage de programmation dans le monde offrant l'efficacité de développement de Python et les performances de C/C++/Rust ?

Insérer la description de l'image ici

Quel langage de traitement d’image a de meilleures perspectives : python, C++, Matlab ou Opencv ?

Insérer la description de l'image ici

J'ai donc pris la décision difficile mais correcte de développer trois langages en même temps ! En fait, ce ne sont que trois langages qui développent ensemble la même fonction.

Sélection de cours

Je recherche actuellement des tutoriels sur le site B et j'ai trouvé deux tutoriels avec les vues les plus élevées. Si vous apprenez à partir de zéro, il est toujours recommandé de parcourir la vidéo, car vous devez comprendre de nombreux détails de configuration et opérations du compilateur. Le but dans cette période est que le code puisse être appliqué, ce qui est la victoire.

[Meilleure recommandation de cours OpenCV du site 2022B] Cours complet OpenCV, de l'entrée au traitement d'image pratique (avec matériel de cours + notes de cours)

Insérer la description de l'image ici

Vidéo de démarrage rapide OpenCV4 C++ 30 conférences - Collection de séries

Insérer la description de l'image ici

Il existe deux classes au total, une en Python et une en C++. En tant que développeur, je prends définitivement le cours C++ en premier, car le C++ est le plus difficile tant que vous pouvez l'exécuter.

Configuration de l'environnement

Python

Je l'ai déjà configuré, je vais donc mettre le lien directement ici.

Notes d'étude à base zéro Python+OpenCV (1-3) : configuration de l'environnement anaconda+vscode+jupyter

C#

Je l'ai fait aussi en C#

Développement C# & OpenCV à partir de zéro (0) : Préface

C++

Cette fois je parlerai principalement de C++

Configuration de l'environnement d'installation et de développement OpenCV (C++)

Téléchargement du site officiel d'OpenCV

Site officiel d'OpenCV

Insérer la description de l'image ici

Après le téléchargement, décompressez-le

Insérer la description de l'image ici

Insérer la description de l'image ici

Créer un nouveau projet C++

Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici

Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

essai

J'ai copié ce code de celui de quelqu'un d'autre

Configuration de l'environnement d'installation et de développement OpenCV (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;
}

Si l'image suivante apparaît, l'opération est réussie

Insérer la description de l'image ici

Version Csharp

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

Insérer la description de l'image ici

Version Python

Python est complètement différent des autres codes. La logique de dénomination de C++ et Csharp est fondamentalement la même, mais Python est un peu unique.

Après avoir longuement cherché sur Internet, j'ai enfin découvert comment dessiner. Je ne sais pas si Python et C++ sont essentiellement identiques, mais les résultats affichés sont similaires.

Python utilise OpenCV pour dessiner des points et des cercles (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)

Insérer la description de l'image ici

entrepôt de gîte

gclove2000 / C++_Csharp_Python_OpenCV

J'ai créé un nouvel entrepôt, mais cela ne semble pas avoir beaucoup de sens. En raison de la différence dans la gestion des bibliothèques des trois fichiers, les bibliothèques globales de C++, Python et Csharp sont des bibliothèques indépendantes pour chaque projet. Il est donc difficile de créer fréquemment de nouveaux projets. Je ne créerai pas de nouveau projet ici, collez simplement le code et utilisez-le.

Résumer

Cette fois, je viens d'installer l'environnement OpenCV. La prochaine fois, j'y reviendrai pour apprendre à utiliser correctement trois langages pour écrire OpenCV.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44695769/article/details/135587859
conseillé
Classement