C++&Python&C#の3言語ゼロからのOpenCV開発(1):環境構築

序文

Lao Wang と私はマシン ビジョンの方向でコンピューター業界に転職したいと考えているため、OpenCV をゼロから学習し始める予定です。しかし現在、OpenCV には C++ と Python という 2 つの公式言語があります。C# では、一部の専門家が対応する OpenCV バージョンを適応させています。現在の3言語の特徴は、

  • C++: 実行効率は最も速いが、構文が非常に難しく、開発が非常に困難
  • Python: 開発効率は非常に速いですが、実行効率は非常に遅く、最適化が不十分な場合は C++ の 20 倍以上遅くなります。
  • C#: 開発効率は速く、Python よりもそれほど遅くはありませんが、実行効率は C++ よりも低くなります。ただし、OpenCV に関連するチュートリアルはほとんどありません

Pythonの開発効率とC/C++/Rustのパフォーマンスを兼ね備えたプログラミング言語は世の中にあるのでしょうか?

ここに画像の説明を挿入します

Python、C++、Matlab、または Opencv のうち、どの画像処理言語の方が将来性が高いでしょうか?

ここに画像の説明を挿入します

そこで私は 3 つの言語を同時に開発するという、難しいながらも正しい決断を下しました。実際には、同じ機能を 3 つの言語が一緒に開発しているだけです。

コース選択

現在、サイト B でチュートリアルを検索しているところ、閲覧数が最も多い 2 つのチュートリアルを見つけました。ゼロから学習する場合でも、多くの構成の詳細とコンパイラの操作を理解する必要があるため、ビデオを読むことをお勧めします。この期間の目標は、コードが実行できること、つまり勝利です。

【2022BサイトイチオシのOpenCVコース】入門から実践までOpenCVフルコース(コースウェア教材+コースウェアノート付き)画像処理

ここに画像の説明を挿入します

OpenCV4 C++ クイック スタート ビデオ 30 レクチャー - シリーズ コレクション

ここに画像の説明を挿入します

合計 2 つのクラスがあり、1 つは Python で、もう 1 つは C++ です。開発者として、私は間違いなく最初に C++ コースを受講します。実行できる限り C++ は最も難しいコースだからです。

環境構成

パイソン

以前に設定したことがありますので、ここに直接リンクを貼ります。

Python+OpenCV ゼロベース学習メモ (1-3): anaconda+vscode+jupyter 環境構成

C#

C#でもやってみました

ゼロから始める C# &OpenCV 開発 (0): はじめに

C++

今回は主に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;
}

以下の画像が表示されれば成功です

ここに画像の説明を挿入します

Cシャープのバージョン

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

新しい倉庫を作りましたが、あまり意味がない気がします。3 つのファイルのライブラリ管理の違いにより、C++、Python、Csharp のグローバル ライブラリはプロジェクトごとに独立したライブラリになります。そのため、頻繁に新しいプロジェクトを作成するのは面倒です。ここでは新しいプロジェクトは作成しません。コードを貼り付けて使用するだけです。

要約する

今回は OpenCV 環境をインストールしただけですが、次回は 3 つの言語を正しく使用して OpenCV を記述する方法を学びます。

おすすめ

転載: blog.csdn.net/qq_44695769/article/details/135587859