Разработка OpenCV на трех языках C++&Python&C# с нуля (1): настройка среды

Предисловие

Поскольку мы с Лао Вангом хотим переключиться в компьютерную индустрию в сторону машинного зрения, я планирую начать изучать OpenCV с нуля. Но в настоящее время OpenCV имеет два официальных языка: C++ и Python. Некоторые эксперты адаптировали соответствующую версию OpenCV для C#. Текущие характеристики трех языков таковы:

  • C++: самая быстрая эффективность работы, но синтаксис чрезвычайно сложен, а разработка чрезвычайно сложна.
  • Python: эффективность разработки чрезвычайно высока, но эффективность работы крайне низка. Если он плохо оптимизирован, он более чем в 20 раз медленнее, чем C++.
  • C#: эффективность разработки высокая, ненамного медленнее, чем у Python, а эффективность работы ниже, чем у C++. Но есть несколько руководств, связанных с OpenCV.

Есть ли в мире язык программирования, который обладал бы эффективностью разработки Python и производительностью C/C++/Rust?

Вставьте сюда описание изображения

У какого языка обработки изображений больше перспектив: Python, C++, Matlab или Opencv?

Вставьте сюда описание изображения

Так я принял непростое, но правильное решение — развивать три языка одновременно! По сути, это всего лишь три языка, совместно реализующие одну и ту же функцию.

Выбор курса

В настоящее время я ищу учебные пособия на сайте B и нашел два учебных пособия с наибольшим количеством просмотров. Если вы учитесь с нуля, все равно рекомендуется просмотреть видео, поскольку вам необходимо понимать многие детали конфигурации и операций компилятора. Цель на этом этапе состоит в том, чтобы код смог выполниться, что является победой.

[Лучшая рекомендация курса OpenCV на сайте 2022B] Полный курс OpenCV от начального до практического (с учебными материалами + примечаниями по курсу) обработки изображений

Вставьте сюда описание изображения

Видео по быстрому старту OpenCV4 C++, 30 лекций — коллекция серий

Вставьте сюда описание изображения

Всего существует два класса: один на Python и один на C++. Как разработчик, я определенно сначала прохожу курс C++, потому что C++ — самый сложный, если вы можете его использовать.

Конфигурация среды

Питон

Я уже настроил его раньше, поэтому помещу ссылку прямо здесь.

Примечания к исследованию Python+OpenCV (1–3): конфигурация среды anaconda+vscode+jupyter

С#

Я тоже сделал это на C#

Разработка C# &OpenCV с нуля (0): Предисловие

С++

На этот раз я в основном буду говорить о C++.

Настройка среды установки и разработки OpenCV (C++)

Официальный сайт OpenCV скачать

Официальный сайт OpenCV

Вставьте сюда описание изображения

После скачивания разархивируйте его

Вставьте сюда описание изображения

Вставьте сюда описание изображения

Создайте новый проект C++.

Вставьте сюда описание изображения

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Вставьте сюда описание изображения

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Вставьте сюда описание изображения

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

тестовый забег

Я скопировал этот код с чужого

Настройка среды установки и разработки 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;
}

Если появится следующая картинка, операция прошла успешно

Вставьте сюда описание изображения

Версия 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();
}

Вставьте сюда описание изображения

Версия Python

Python полностью отличается от других кодов.Логика именования C++ и Csharp в основном одинакова, но Python немного уникален.

После долгих поисков в Интернете я наконец узнал, как рисовать. Я не знаю, одинаковы ли Python и C++, но показанные результаты схожи.

Python использует OpenCV для рисования точек и кругов (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)

Вставьте сюда описание изображения

Гити склад

gclove2000/C++_Csharp_Python_OpenCV

Я создал новый склад, но мне кажется, что это не имеет особого смысла. Из-за разницы в управлении библиотеками трех файлов глобальные библиотеки C++ и Python, а также Csharp являются независимыми библиотеками для каждого проекта. Поэтому часто создавать новые проекты проблематично. Я не буду здесь создавать новый проект, просто вставлю код и пользуюсь.

Подведем итог

В этот раз я только что установил среду OpenCV. В следующий раз я вернусь, чтобы научиться правильно использовать три языка для написания OpenCV.

рекомендация

отblog.csdn.net/qq_44695769/article/details/135587859
рекомендация