最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在VScode使用C#并且調(diào)用opencv庫的流程步驟

 更新時(shí)間:2026年06月08日 09:46:52   作者:咸魚翻身小阿橙  
在這篇文章中,你將學(xué)習(xí)如何在VSCode中搭建C#開發(fā)環(huán)境,包括安裝.NET?SDK、C#?DevKit等擴(kuò)展,創(chuàng)建和運(yùn)行C#項(xiàng)目,以及安裝Emgu.CV和Emgu.CV.runtime.windows以支持OpenCV功能,需要的朋友可以參考下

我來帶你一步步在 VS Code 里搭建出和圖中一樣的 C# 開發(fā)環(huán)境,并能成功運(yùn)行代碼。

一、準(zhǔn)備工作:安裝必備軟件

1. 安裝 .NET SDK

C# 代碼運(yùn)行需要 .NET SDK,這是微軟官方的開發(fā)工具包:

前往官網(wǎng)下載:
.NET SDK

選擇你系統(tǒng)對應(yīng)的版本(Windows/macOS/Linux),推薦下載 長期支持(LTS) 版本。

安裝完成后,打開 VS Code 的終端(Ctrl+ 快捷鍵),輸入以下命令驗(yàn)證安裝:

dotnet --version

如果能輸出版本號(hào),說明安裝成功。

2. 安裝 VS Code 擴(kuò)展

打開 VS Code,在擴(kuò)展市場(左側(cè)方塊圖標(biāo))安裝這兩個(gè)擴(kuò)展:

  • C# Dev Kit(微軟官方的 C# 開發(fā)工具,包含語法高亮、調(diào)試、自動(dòng)補(bǔ)全)
  • C#(OmniSharp 提供的語言支持,通常會(huì)和 C# Dev Kit 一起安裝)

二、創(chuàng)建和運(yùn)行第一個(gè) C# 項(xiàng)目(和圖中結(jié)構(gòu)完全一致)

1. 創(chuàng)建項(xiàng)目文件夾

  1. 在電腦上新建一個(gè)文件夾,比如 OpenCVIntro(和圖中的項(xiàng)目名一致)。
  2. 用 VS Code 打開這個(gè)文件夾:文件 → 打開文件夾。

2. 在終端創(chuàng)建控制臺(tái)項(xiàng)目

在 VS Code 終端中,輸入以下命令創(chuàng)建一個(gè)控制臺(tái)應(yīng)用:

dotnet new console

執(zhí)行后,VS Code 的文件資源管理器里會(huì)自動(dòng)生成這些文件,和圖中的結(jié)構(gòu)完全對應(yīng):

  • Program.cs:你的主代碼文件(圖中打開的文件)
  • OpenCVIntro.csproj:項(xiàng)目配置文件(和圖中文件名一致)
  • bin/obj/ 文件夾:編譯生成的文件(和圖中顯示的一樣)

3. 編寫和運(yùn)行代碼

打開 Program.cs,把默認(rèn)代碼改成你圖中的版本:

using System;

namespace ourNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

點(diǎn)擊 VS Code 頂部的 運(yùn)行 → 啟動(dòng)調(diào)試(或按 F5),或在終端輸入:

dotnet run

3.如果想使用插件直接安裝 需要下載Code Runner插件

終端會(huì)輸出 Hello, World!,說明代碼成功運(yùn)行了 ?

三、常見問題和補(bǔ)充說明

為什么我的文件結(jié)構(gòu)和圖里不一樣?
新版 .NET 6+ 的 dotnet new console 默認(rèn)是頂級(jí)語句寫法(沒有 namespace 和 class),如果你想和圖里的舊版結(jié)構(gòu)完全一致,可以在創(chuàng)建項(xiàng)目時(shí)指定舊模板:

dotnet new console -lang C# -f net5.0

或者直接手動(dòng)把代碼改成圖中的寫法即可。

調(diào)試怎么配置?
第一次按 F5 運(yùn)行時(shí),VS Code 會(huì)自動(dòng)生成 .vscode/launch.json.vscode/tasks.json 文件,不需要手動(dòng)配置,直接就能調(diào)試。

四、后續(xù)拓展(如果你要做 OpenCV)

你圖里的項(xiàng)目名是 OpenCVIntro,如果要在 C# 里用 OpenCV,可以通過 NuGet 安裝包:

在終端輸入:

dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.runtime.win

之后就可以在代碼里引用 OpenCV 命名空間,寫圖像處理代碼了。

一句話:這是給你的 C# 項(xiàng)目安裝「Emgu CV」NuGet 包,讓你能在 C# 里直接用 OpenCV(圖像處理/計(jì)算機(jī)視覺)功能。

我拆開講清楚:

1.dotnet add package是什么?

這是 .NET 命令行工具(CLI)的命令:

dotnet add package 包名

作用:

  • 給**當(dāng)前目錄下的 C# 項(xiàng)目(.csproj)**添加一個(gè)外部庫(NuGet 包)引用
  • 自動(dòng)修改 .csproj,加上:
<PackageReference Include="Emgu.CV" Version="xxx" />
  • 自動(dòng)下載并安裝這個(gè)庫到項(xiàng)目里

簡單說:就是在命令行里裝庫,等同于 VS 里右鍵“管理 NuGet 包”→安裝。

2.Emgu.CV是什么?

  • OpenCV:最著名的開源圖像處理/計(jì)算機(jī)視覺庫,底層是 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);

就能讀圖片、顯示、人臉識(shí)別、邊緣檢測、攝像頭處理……全部 OpenCV 功能。

3. 為什么你要執(zhí)行這個(gè)命令?

因?yàn)槟沩?xiàng)目叫 OpenCVIntro,就是要做 C# + OpenCV 入門。

只裝 Emgu.CV 還不夠(它只是“包裝層”),Windows 下必須再裝運(yùn)行時(shí)

dotnet add package Emgu.CV.runtime.windows

否則會(huì)報(bào)“找不到 opencv 原生 dll”。

4. 總結(jié)(最簡單理解)

  • dotnet add package安裝 C# 庫
  • Emgu.CVC# 版 OpenCV(圖像處理/視覺)
  • 你執(zhí)行它 = 給項(xiàng)目裝上 OpenCV 能力

一句話:dotnet add package Emgu.CV.runtime.windows 是 Windows 專用的「原生運(yùn)行時(shí)」包,專門帶 OpenCV 的 .dll 文件;沒有它,你的 C# 程序一用 Emgu.CV 就直接崩潰。

下面拆開講,保證你徹底明白:

1. 先分清楚兩個(gè)包

你裝了兩個(gè)東西:

1)Emgu.CV(核心托管庫)

  • 是 C# 能看懂的「包裝層」
  • 提供 using Emgu.CV;Mat、CvInvoke.Imread 這些類和方法
  • 但它本身不包含 OpenCV 底層代碼(沒有 .dll)

2)Emgu.CV.runtime.windows(Windows 原生運(yùn)行時(shí))

  • 里面是編譯好的 OpenCV C++ 原生 DLL(x86/x64)
  • 比如:opencv_world480.dll、cvextern.dll
  • 專門給 Windows 用,Linux/macOS 要裝別的 runtime 包

2. 為什么必須裝這個(gè)?(最關(guān)鍵)

Emgu.CV 工作原理:

C# 代碼(Emgu.CV 托管層)
↓調(diào)用
OpenCV C++ 代碼(在 .dll 里)

  • 只裝 Emgu.CV → 只有“說明書”,沒有“干活的工人”
  • 運(yùn)行時(shí)會(huì)直接報(bào):

無法加載 DLL“opencv_worldxxx.dll”

Emgu.CV.CvInvoke 的類型初始值設(shè)定項(xiàng)引發(fā)異常

  • 裝了 runtime.windowsNuGet 自動(dòng)把所有 OpenCV 原生 DLL 復(fù)制到輸出目錄,程序才能真正跑起來

3. 這條命令的意思

dotnet add package Emgu.CV.runtime.windows
  • dotnet add package:給當(dāng)前項(xiàng)目安裝 NuGet 包
  • Emgu.CV.runtime.windowsWindows 平臺(tái)的 Emgu CV 原生運(yùn)行時(shí)包

等價(jià)于:

我要在 Windows 上用 Emgu CV,請把所有必需的 OpenCV DLL 都裝好。

4. 總結(jié)(超級(jí)精簡版)

  • Emgu.CV = C# 接口(讓你能寫代碼)
  • Emgu.CV.runtime.windows = Windows 版 OpenCV 底層 DLL(讓代碼能跑)
  • 缺一不可,否則運(yùn)行報(bào)錯(cuò)、崩潰

要不要我給你一段最小示例代碼,你直接復(fù)制就能測試圖片讀取+顯示,確認(rèn)兩個(gè)包都裝對了?

以上就是在VScode使用C#并且調(diào)用opencv庫的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于VScode使用C#并調(diào)用opencv庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#文件路徑Path類介紹

    C#文件路徑Path類介紹

    這篇文章介紹了C#中的文件路徑Path類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C# 系統(tǒng)全局的異常處理實(shí)現(xiàn)

    C# 系統(tǒng)全局的異常處理實(shí)現(xiàn)

    在C#應(yīng)用程序中,異??赡茉谌魏蔚胤桨l(fā)生,本文主要介紹了C# 系統(tǒng)全局的異常處理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • C#刪除文件夾里的所有文件的實(shí)現(xiàn)方案

    C#刪除文件夾里的所有文件的實(shí)現(xiàn)方案

    你需要在 C# 中實(shí)現(xiàn)刪除指定文件夾內(nèi)所有文件的功能,下面會(huì)提供多種適配不同場景的實(shí)現(xiàn)方案,包含基礎(chǔ)用法、安全用法及進(jìn)階需求,同時(shí)規(guī)避常見坑點(diǎn),需要的朋友可以參考下
    2025-12-12
  • C#中foreach原理以及模擬的實(shí)現(xiàn)

    C#中foreach原理以及模擬的實(shí)現(xiàn)

    這篇文章主要介紹了C#中foreach原理以及模擬的實(shí)現(xiàn)方法,備有詳盡的注釋,便于深入理解C#原理,需要的朋友可以參考下
    2014-10-10
  • C#路徑,文件,目錄及IO常見操作匯總

    C#路徑,文件,目錄及IO常見操作匯總

    這篇文章主要介紹了C#路徑,文件,目錄及IO常見操作,較為詳細(xì)的分析并匯總了C#關(guān)于路徑,文件,目錄及IO常見操作,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C#多線程編程如何從用戶線程到線程池的效能進(jìn)化

    C#多線程編程如何從用戶線程到線程池的效能進(jìn)化

    C#作為一種功能強(qiáng)大的現(xiàn)代編程語言,提供了豐富的線程管理機(jī)制,以支持開發(fā)者應(yīng)對各種并發(fā)場景,不同的線程類型在功能、生命周期和適用場景上各有側(cè)重,本文將重點(diǎn)介紹C#中的五種主要線程類型,需要的朋友可以參考下
    2025-05-05
  • C#調(diào)用dll報(bào)錯(cuò):無法加載dll,找不到指定模塊的解決

    C#調(diào)用dll報(bào)錯(cuò):無法加載dll,找不到指定模塊的解決

    這篇文章主要介紹了C#調(diào)用dll報(bào)錯(cuò):無法加載dll,找不到指定模塊的解決問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C# 三種方式實(shí)現(xiàn)Socket數(shù)據(jù)接收

    C# 三種方式實(shí)現(xiàn)Socket數(shù)據(jù)接收

    這篇文章主要給大家分享三種實(shí)現(xiàn)C# 實(shí)現(xiàn)Socket數(shù)據(jù)接收的方式,接下倆小編就來為大家詳細(xì)介紹吧,需要的朋友可以參考一下
    2021-10-10
  • C#實(shí)現(xiàn)農(nóng)歷日歷的方法

    C#實(shí)現(xiàn)農(nóng)歷日歷的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)農(nóng)歷日歷的方法,詳細(xì)分析了使用C#實(shí)現(xiàn)農(nóng)歷日歷的完整步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C#中委托和事件的區(qū)別實(shí)例解析

    C#中委托和事件的區(qū)別實(shí)例解析

    這篇文章主要介紹了C#中委托和事件的區(qū)別,并分別以實(shí)例形式展示了通過委托執(zhí)行方法與通過事件執(zhí)行方法,以及相關(guān)的執(zhí)行流程與原理分析,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

盘山县| 莱阳市| 湖北省| 延边| 枣阳市| 珠海市| 行唐县| 肇州县| 静安区| 奉化市| 枣庄市| 潜山县| 福清市| 津南区| 什邡市| 文成县| 阿鲁科尔沁旗| 莫力| 饶河县| 太仆寺旗| 玛纳斯县| 黄龙县| 东源县| 精河县| 芜湖县| 临沧市| 杭锦旗| 明溪县| 揭东县| 克拉玛依市| 垣曲县| 天等县| 蒙自县| 靖州| 建平县| 潢川县| 萨嘎县| 永济市| 辉南县| 双鸭山市| 陇川县|