C++&Python&C# 三语言OpenCV从零开发(1):环境配置

文章目录

  • 前言
  • 课程选择
  • 环境配置
    • Python
    • C#
    • C++
      • OpenCV官网下载
      • 新建C++项目
      • 测试运行
      • Csharp版
      • Python版
  • gitee仓库
  • 总结

前言

由于老王我想转机器视觉方向的上位机行业,我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言,C++和Pyhont。C# 有大佬做了对应的OpenCV的版本的适配。目前三个语言的特点是

  • C++:运行效率最快,但是语法难度极大,开发难度极大
  • Python:开发效率极快,但是运行效率极慢,优化不好比C++慢20倍以上
  • C#:开发效率快,没比Python慢多少,运行效率比C++低点。但是OpenCV的相关教程较少

这个世界上有没有编程语言既有Python的开发效率,又有C/C++/Rust的性能?

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第1张图片

图像处理语言中选择python、C++、Matlab还是Opencv前景会更好一些?

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第2张图片

所以我做了个艰难而又正确的决定,三语言同时开发!其实就是三个语言同一功能一起开发而已。

课程选择

我目前在B站上面搜教程,找到两个最高播放量的教程。如果你是零基础学习,还是建议走一遍视频的,因为很多配置的细节,编译器的操作都是要了解的。这个时期的目标就是代码能跑通,就是胜利。

【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记)图像处

在这里插入图片描述

OpenCV4 C++ 快速入门视频30讲 - 系列合集

在这里插入图片描述

一共两个课,一个是Python的,一个是C++的。作为开发,肯定是先C++的课,因为C++能跑就行,C++是最难的那个。

环境配置

Python

我之前配置过了,这里就直接放链接了

Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置

C#

C#我也搞过了

C# &OpenCV 从零开发(0):前言

C++

这次主要讲C++的

OpenCV安装及其开发环境配置(C++)

OpenCV官网下载

OpenCV官网

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第3张图片

下好之后解压

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第4张图片

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第5张图片

新建C++项目

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第6张图片

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第7张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第8张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第9张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第10张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第11张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第12张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第13张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第14张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第15张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第16张图片
C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第17张图片

测试运行

这个代码我是抄别人的

OpenCV安装及其开发环境配置(C++)

#include   
#include   
#include   
#include   
#include  
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++&Python&C# 三语言OpenCV从零开发(1):环境配置_第18张图片

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

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第19张图片

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)

C++&Python&C# 三语言OpenCV从零开发(1):环境配置_第20张图片

gitee仓库

gclove2000 / C++_Csharp_Python_OpenCV

我新建了仓库,但是感觉意义不大。由于三个文件的库管理的区别,C++和Python的全局的库,Csharp是每个项目的库是分别独立的。所以频繁的创建新项目比较烦。我这里就不创建新项目了,直接把代码粘贴上了用就好了。

总结

这次只是单纯的安装OpenCV的环境,下次我回去了解如何正确使用三种语言来写OpenCV。

你可能感兴趣的:(in,OpenCV,c++,python,c#)