前言
由于老王我想转机器视觉方向的上位机行业,我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言,C++和Pyhont。C# 有大佬做了对应的OpenCV的版本的适配。目前三个语言的特点是
- C++:运行效率最快,但是语法难度极大,开发难度极大
- Python:开发效率极快,但是运行效率极慢,优化不好比C++慢20倍以上
- C#:开发效率快,没比Python慢多少,运行效率比C++低点。但是OpenCV的相关教程较少
这个世界上有没有编程语言既有Python的开发效率,又有C/C++/Rust的性能?
图像处理语言中选择python、C++、Matlab还是Opencv前景会更好一些?
所以我做了个艰难而又正确的决定,三语言同时开发!其实就是三个语言同一功能一起开发而已。
课程选择
我目前在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++项目
在Opencv/build/x64/vc16/bin文件路径下
测试运行
这个代码我是抄别人的
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)
gitee仓库
gclove2000 / C++_Csharp_Python_OpenCV
我新建了仓库,但是感觉意义不大。由于三个文件的库管理的区别,C++和Python的全局的库,Csharp是每个项目的库是分别独立的。所以频繁的创建新项目比较烦。我这里就不创建新项目了,直接把代码粘贴上了用就好了。文章来源:https://www.toymoban.com/news/detail-795652.html
总结
这次只是单纯的安装OpenCV的环境,下次我回去了解如何正确使用三种语言来写OpenCV。文章来源地址https://www.toymoban.com/news/detail-795652.html
到了这里,关于C++&Python&C# 三语言OpenCV从零开发(1):环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!