在VScode使用C#并且调用opencv库的流程步骤
作者:咸鱼翻身小阿橙
我来带你一步步在 VS Code 里搭建出和图中一样的 C# 开发环境,并能成功运行代码。
一、准备工作:安装必备软件
1. 安装 .NET SDK
C# 代码运行需要 .NET SDK,这是微软官方的开发工具包:
前往官网下载:
.NET SDK
选择你系统对应的版本(Windows/macOS/Linux),推荐下载 长期支持(LTS) 版本。
安装完成后,打开 VS Code 的终端(Ctrl+ 快捷键),输入以下命令验证安装:
dotnet --version
如果能输出版本号,说明安装成功。
2. 安装 VS Code 扩展
打开 VS Code,在扩展市场(左侧方块图标)安装这两个扩展:
- C# Dev Kit(微软官方的 C# 开发工具,包含语法高亮、调试、自动补全)
- C#(OmniSharp 提供的语言支持,通常会和 C# Dev Kit 一起安装)
二、创建和运行第一个 C# 项目(和图中结构完全一致)
1. 创建项目文件夹
- 在电脑上新建一个文件夹,比如
OpenCVIntro(和图中的项目名一致)。 - 用 VS Code 打开这个文件夹:
文件 → 打开文件夹。
2. 在终端创建控制台项目
在 VS Code 终端中,输入以下命令创建一个控制台应用:
dotnet new console
执行后,VS Code 的文件资源管理器里会自动生成这些文件,和图中的结构完全对应:
Program.cs:你的主代码文件(图中打开的文件)OpenCVIntro.csproj:项目配置文件(和图中文件名一致)bin/和obj/文件夹:编译生成的文件(和图中显示的一样)
3. 编写和运行代码
打开 Program.cs,把默认代码改成你图中的版本:
using System;
namespace ourNamespace
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
点击 VS Code 顶部的 运行 → 启动调试(或按 F5),或在终端输入:
dotnet run
3.如果想使用插件直接安装 需要下载Code Runner插件
终端会输出 Hello, World!,说明代码成功运行了 ✅
三、常见问题和补充说明
为什么我的文件结构和图里不一样?
新版 .NET 6+ 的 dotnet new console 默认是顶级语句写法(没有 namespace 和 class),如果你想和图里的旧版结构完全一致,可以在创建项目时指定旧模板:
dotnet new console -lang C# -f net5.0
或者直接手动把代码改成图中的写法即可。
调试怎么配置?
第一次按 F5 运行时,VS Code 会自动生成 .vscode/launch.json 和 .vscode/tasks.json 文件,不需要手动配置,直接就能调试。
四、后续拓展(如果你要做 OpenCV)
你图里的项目名是 OpenCVIntro,如果要在 C# 里用 OpenCV,可以通过 NuGet 安装包:
在终端输入:
dotnet add package OpenCvSharp4 dotnet add package OpenCvSharp4.runtime.win
之后就可以在代码里引用 OpenCV 命名空间,写图像处理代码了。
一句话:这是给你的 C# 项目安装「Emgu CV」NuGet 包,让你能在 C# 里直接用 OpenCV(图像处理/计算机视觉)功能。
我拆开讲清楚:
1.dotnet add package是什么?
这是 .NET 命令行工具(CLI)的命令:
dotnet add package 包名
作用:
- 给**当前目录下的 C# 项目(.csproj)**添加一个外部库(NuGet 包)引用
- 自动修改
.csproj,加上:
<PackageReference Include="Emgu.CV" Version="xxx" />
- 自动下载并安装这个库到项目里
简单说:就是在命令行里装库,等同于 VS 里右键“管理 NuGet 包”→安装。
2.Emgu.CV是什么?
- OpenCV:最著名的开源图像处理/计算机视觉库,底层是 C++ 写的
- Emgu CV:把 OpenCV 封装成 .NET 库(C# 可用),叫「.NET wrapper」
有了它,你在 C# 里可以直接写:
using Emgu.CV;
using Emgu.CV.CvInvoke;
Mat img = CvInvoke.Imread("test.jpg");
CvInvoke.Imshow("window", img);
就能读图片、显示、人脸识别、边缘检测、摄像头处理……全部 OpenCV 功能。
3. 为什么你要执行这个命令?
因为你项目叫 OpenCVIntro,就是要做 C# + OpenCV 入门。
只装 Emgu.CV 还不够(它只是“包装层”),Windows 下必须再装运行时:
dotnet add package Emgu.CV.runtime.windows
否则会报“找不到 opencv 原生 dll”。
4. 总结(最简单理解)
dotnet add package→ 安装 C# 库Emgu.CV→ C# 版 OpenCV(图像处理/视觉)- 你执行它 = 给项目装上 OpenCV 能力
一句话:dotnet add package Emgu.CV.runtime.windows 是 Windows 专用的「原生运行时」包,专门带 OpenCV 的 .dll 文件;没有它,你的 C# 程序一用 Emgu.CV 就直接崩溃。
下面拆开讲,保证你彻底明白:
1. 先分清楚两个包
你装了两个东西:
1)Emgu.CV(核心托管库)
- 是 C# 能看懂的「包装层」
- 提供
using Emgu.CV;、Mat、CvInvoke.Imread这些类和方法 - 但它本身不包含 OpenCV 底层代码(没有 .dll)
2)Emgu.CV.runtime.windows(Windows 原生运行时)
- 里面是编译好的 OpenCV C++ 原生 DLL(x86/x64)
- 比如:
opencv_world480.dll、cvextern.dll等 - 专门给 Windows 用,Linux/macOS 要装别的 runtime 包
2. 为什么必须装这个?(最关键)
Emgu.CV 工作原理:
C# 代码(Emgu.CV 托管层)
↓调用
OpenCV C++ 代码(在 .dll 里)
- 只装
Emgu.CV→ 只有“说明书”,没有“干活的工人” - 运行时会直接报:
无法加载 DLL“opencv_worldxxx.dll”
或
Emgu.CV.CvInvoke 的类型初始值设定项引发异常
- 装了
runtime.windows→ NuGet 自动把所有 OpenCV 原生 DLL 复制到输出目录,程序才能真正跑起来
3. 这条命令的意思
dotnet add package Emgu.CV.runtime.windows
dotnet add package:给当前项目安装 NuGet 包Emgu.CV.runtime.windows:Windows 平台的 Emgu CV 原生运行时包
等价于:
我要在 Windows 上用 Emgu CV,请把所有必需的 OpenCV DLL 都装好。
4. 总结(超级精简版)
- Emgu.CV = C# 接口(让你能写代码)
- Emgu.CV.runtime.windows = Windows 版 OpenCV 底层 DLL(让代码能跑)
- 缺一不可,否则运行报错、崩溃
要不要我给你一段最小示例代码,你直接复制就能测试图片读取+显示,确认两个包都装对了?
以上就是在VScode使用C#并且调用opencv库的流程步骤的详细内容,更多关于VScode使用C#并调用opencv库的资料请关注脚本之家其它相关文章!
