Desenvolvimento OpenCV de três idiomas em C++, Python e C# do zero (1): configuração do ambiente

Prefácio

Como Lao Wang e eu queremos mudar para a indústria de computadores na direção da visão de máquina, pretendo começar a aprender OpenCV do zero. Mas atualmente o OpenCV possui duas linguagens oficiais, C++ e Python. Em C#, alguns especialistas adaptaram a versão correspondente do OpenCV. As características atuais das três línguas são

  • C++: A eficiência de execução mais rápida, mas a sintaxe é extremamente difícil e o desenvolvimento é extremamente difícil
  • Python: A eficiência de desenvolvimento é extremamente rápida, mas a eficiência de execução é extremamente lenta. Se não estiver bem otimizada, será mais de 20 vezes mais lenta que C++.
  • C#: A eficiência de desenvolvimento é rápida, não muito mais lenta que Python, e a eficiência de execução é inferior a C++. Mas existem poucos tutoriais relacionados ao OpenCV

Existe alguma linguagem de programação no mundo que tenha a eficiência de desenvolvimento do Python e o desempenho do C/C++/Rust?

Insira a descrição da imagem aqui

Qual linguagem de processamento de imagem tem melhores perspectivas: python, C++, Matlab ou Opencv?

Insira a descrição da imagem aqui

Então tomei uma decisão difícil, mas correta, de desenvolver três idiomas ao mesmo tempo! Na verdade, são apenas três linguagens desenvolvendo a mesma função juntas.

Seleção de curso

Atualmente estou procurando tutoriais no site B e encontrei dois tutoriais com as visualizações mais altas. Se você está aprendendo do zero, ainda é recomendável assistir ao vídeo, pois você precisa entender muitos detalhes de configuração e operações do compilador. O objetivo neste período é que o código possa ser executado, o que é a vitória.

[A melhor recomendação de curso OpenCV do site 2022B] Curso completo OpenCV desde a entrada até o processamento de imagem prático (com materiais didáticos + notas do curso)

Insira a descrição da imagem aqui

Vídeo de início rápido OpenCV4 C++ 30 palestras - coleção de séries

Insira a descrição da imagem aqui

Existem duas classes no total, uma em Python e outra em C++. Como desenvolvedor, eu definitivamente faço o curso C++ primeiro, porque C++ é o mais difícil, desde que você consiga executá-lo.

Configuração do ambiente

Pitão

Já configurei antes, então colocarei o link diretamente aqui.

Notas de estudo baseadas em zero Python + OpenCV (1-3): configuração do ambiente anaconda + vscode + jupyter

C#

Eu fiz isso em C# também

Desenvolvimento C# e OpenCV do zero (0): Prefácio

C++

Desta vez falarei principalmente sobre C++

Instalação do OpenCV e configuração do ambiente de desenvolvimento (C++)

Baixe o site oficial do OpenCV

Site oficial do OpenCV

Insira a descrição da imagem aqui

Após baixar, descompacte-o

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Crie um novo projeto C++

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

teste

Copiei esse código de outra pessoa

Instalação do OpenCV e configuração do ambiente de desenvolvimento (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;
}

Se a imagem a seguir aparecer, a operação foi bem-sucedida

Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

Versão Python

Python é completamente diferente de outros códigos.A lógica de nomenclatura de C++ e Csharp é basicamente a mesma, mas Python é um pouco única.

Depois de muito pesquisar online, finalmente descobri como desenhar. Não sei se Python e C++ são essencialmente iguais, mas os resultados mostrados são semelhantes.

Python usa OpenCV para desenhar pontos e 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)

Insira a descrição da imagem aqui

armazém rural

gclove2000/C++_Csharp_Python_OpenCV

Criei um novo armazém, mas não parece fazer muito sentido. Devido à diferença no gerenciamento da biblioteca dos três arquivos, as bibliotecas globais de C++ e Python e Csharp são bibliotecas independentes para cada projeto. Portanto, é problemático criar novos projetos com frequência. Não vou criar um novo projeto aqui, apenas colar o código e utilizá-lo.

Resumir

Desta vez acabei de instalar o ambiente OpenCV, da próxima vez voltarei para aprender como usar corretamente três linguagens para escrever OpenCV.

Acho que você gosta

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