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

news/2024/6/2 22:13:11 标签: c++, python, c#

文章目录

  • 前言
  • 课程选择
  • 环境配置
    • 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的性能?

在这里插入图片描述

图像处理语言中选择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安装及其开发环境配置(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)

python">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是每个项目的库是分别独立的。所以频繁的创建新项目比较烦。我这里就不创建新项目了,直接把代码粘贴上了用就好了。

总结

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


http://www.niftyadmin.cn/n/5324634.html

相关文章

[易语言]易语言部署yolox的onnx模型

【官方框架地址】 https://github.com/Megvii-BaseDetection/YOLOX 【算法介绍】 YOLOX是YOLO系列目标检测算法的进一步演变和优化。它由Megvii Technology的研究团队开发&#xff0c;是一个高性能、可扩展的对象检测器。YOLOX在保留快速处理速度的同时&#xff0c;通过引入一…

案例121:基于微信小程序的作品集展示系统设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

【零基础入门Python数据分析】Anaconda3 JupyterNotebookseaborn版

目录 一、安装环境 python介绍 anaconda介绍 jupyter notebook介绍 anaconda3 环境安装 解决JuPyter500&#xff1a;Internal Server Error问题-CSDN博客 Jupyter notebook快捷键操作大全 二、Python基础入门 数据类型与变量 数据类型 变量及赋值 布尔类型与逻辑运算…

easypoi文件导出

2.3注解导出 对象定义&#xff1a;学生 基本导出测试&#xff1a; ExportParams&#xff1a;设置标题名、sheet页名 ExcelExportUtil. exportExcel&#xff1a;导出excel表格方法 集合定义&#xff1a;课程&#xff1a;对应老师和学生的集合 跟上面的一致 图片的导出&#xff1…

小程序基础学习(请求封装)(重点,核心)

目录 首先&#xff1a; 封装一个request请求的js文件&#xff0c;用的是Promise 然后&#xff1a; 请求编写 原理&#xff1a;首先在页面加载完成以后发送一次请求数据&#xff0c;由于请求的数据会反复使用&#xff0c;直接把他抽离到外面&#xff0c;以后直接调用。在使用a…

宝塔安装redis并且远程连接redis教程

第一步&#xff1a;搜索redis并安装 第二步&#xff1a;在防火墙添加端口6379 第三步&#xff1a;查看宝塔防火墙是否开启了6379端口 firewall-cmd --zonepublic --list-ports 很显然并没有开启 第四步&#xff1a;开启防火墙的6379端口 firewall-cmd --zonepublic --add-po…

NLP论文阅读记录 - 2021 | WOS 使用深度强化学习及其他技术进行自动文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1. Seq2seq 模型2.2.强化学习和序列生成2.3.自动文本摘要 三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Auto…

Day02

今日任务&#xff1a; 977 有序数组的平方209 长度最小的子数组59 螺旋矩阵Ⅱ 977 有序数组的平方 题目链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/ 双指针问题&#xff0c;以及数组本身时有序的&#xff1b; 思路&#xff1a; 左、右两个…