Directorio de artículos
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.
¿Qué lenguaje de procesamiento de imágenes tiene mejores perspectivas: Python, C++, Matlab u Opencv?
¡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.
OpenCV4 C++ Video de inicio rápido 30 conferencias - Colección de series
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í.
C#
Yo también lo hice en C#.
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
Después de descargarlo, descomprímelo.
Crear un nuevo proyecto C++
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
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();
}
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.
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)
almacén rural
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.