Desarrollo OpenCV en tres idiomas C ++, Python y C # desde cero (1): configuración del entorno

Prefacio

Debido a que Lao Wang y yo queremos cambiar a la industria informática en dirección a la visión artificial, planeo comenzar a aprender OpenCV desde cero. Pero actualmente OpenCV tiene dos lenguajes oficiales, C++ y Python. En C#, algunos expertos han adaptado la versión OpenCV correspondiente. Las características actuales de las tres lenguas son

  • C ++: la eficiencia de ejecución más rápida, pero la sintaxis es extremadamente difícil y el desarrollo es extremadamente difícil
  • Python: la eficiencia del desarrollo es extremadamente rápida, pero la eficiencia de ejecución es extremadamente lenta. Si no está bien optimizado, es más de 20 veces más lento que C ++.
  • C #: la eficiencia del desarrollo es rápida, no mucho más lenta que la de Python y la eficiencia de ejecución es menor que la de C ++. Pero hay pocos tutoriales relacionados con OpenCV.

¿Existe algún lenguaje de programación en el mundo que tenga la eficiencia de desarrollo de Python y el rendimiento de C/C++/Rust?

Insertar descripción de la imagen aquí

¿Qué lenguaje de procesamiento de imágenes tiene mejores perspectivas: Python, C++, Matlab u Opencv?

Insertar descripción de la imagen aquí

¡Así que tomé la difícil pero correcta decisión de desarrollar tres idiomas al mismo tiempo! De hecho, son solo tres lenguajes que desarrollan la misma función juntos.

Selección de cursos

Actualmente estoy buscando tutoriales en el sitio B y encontré dos tutoriales con las vistas más altas. Si está aprendiendo desde cero, le recomendamos que vea el video, porque necesita comprender muchos detalles de configuración y operaciones del compilador. El objetivo en este período es que el código pueda ejecutarse, lo cual es la victoria.

[La mejor recomendación de curso OpenCV del sitio 2022B] Curso completo de OpenCV desde el nivel inicial hasta el procesamiento de imágenes práctico (con materiales didácticos + notas del curso)

Insertar descripción de la imagen aquí

OpenCV4 C++ Video de inicio rápido 30 conferencias - Colección de series

Insertar descripción de la imagen aquí

Hay dos clases en total, una en Python y otra en C++. Como desarrollador, definitivamente tomo el curso de C++ primero, porque C++ es el más difícil siempre que puedas ejecutarlo.

Configuración del entorno

Pitón

Lo he configurado antes, así que pondré el enlace directamente aquí.

Notas de estudio de base cero de Python + OpenCV (1-3): configuración del entorno anaconda + vscode + jupyter

C#

Yo también lo hice en C#.

Desarrollo de C# y OpenCV desde cero (0): Prefacio

C++

Esta vez hablaré principalmente de C++.

Configuración del entorno de instalación y desarrollo de OpenCV (C++)

Descarga del sitio web oficial de OpenCV

Sitio web oficial de OpenCV

Insertar descripción de la imagen aquí

Después de descargarlo, descomprímelo.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Crear un nuevo proyecto C++

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

prueba de funcionamiento

Copié este código del de otra persona.

Configuración del entorno de instalación y desarrollo de 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 aparece la siguiente imagen, la operación fue exitosa

Insertar descripción de la imagen aquí

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

Insertar descripción de la imagen aquí

Versión de Python

Python es completamente diferente de otros códigos: la lógica de nombres de C ++ y Csharp es básicamente la misma, pero Python es un poco único.

Después de mucho tiempo buscando en Internet, finalmente descubrí cómo dibujar. No sé si Python y C++ son esencialmente iguales, pero los resultados mostrados son similares.

Python usa OpenCV para dibujar puntos y círculos (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)

Insertar descripción de la imagen aquí

almacén rural

gclove2000 / C++_Csharp_Python_OpenCV

Creé un nuevo almacén, pero no parece que tenga mucho sentido. Debido a la diferencia en la gestión de bibliotecas de los tres archivos, las bibliotecas globales de C++ y Python y Csharp son bibliotecas independientes para cada proyecto. Por eso es problemático crear nuevos proyectos con frecuencia. No crearé un nuevo proyecto aquí, solo pegaré el código y lo usaré.

Resumir

Esta vez acabo de instalar el entorno OpenCV, la próxima vez volveré para aprender cómo usar correctamente tres idiomas para escribir OpenCV.

Supongo que te gusta

Origin blog.csdn.net/qq_44695769/article/details/135587859
Recomendado
Clasificación