【OpenCV】在MacOS上使用OpenCvSharp
前言 ? OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。OpenCvSharp是一個OpenCV的 .Net wrapper,應用最新的OpenCV庫開發,使用習慣比EmguCV更接近原始的OpenCV,該庫采用LGPL發行,對商業應用友好。
1. 項目環境
- 編碼環境:Visual Studio Code
- 程序框架:.NET 6.0
? 目前在Mac OS上使用C#語言官方提供了編譯Visual Studio for Mac,但是根據官方發布的通知后續將不再支持該軟件更新,后續將全部轉移到Visual Studio Code平臺,所以在此處我們演示使用Visual Studio Code進行演示。而代碼的運行與配置使用dotnet指令實現。
? 關于Visual Studio Code以及.NET的安裝方式可以參考一下官方教程:
在 macOS 上安裝 .NET、Visual Studio Code on macOS。
2. 創建控制臺項目
? 此處使用dotnet指令創建新項目,在Visual Studio Code的終端中輸入一下指令:
dotnet new console --framework net6.0 --use-program-main -o test_opencvsharp
? 如下圖所示,在終端中輸入以下指令后,會自動創建新的項目以及項目文件夾。
? 在創建好項目后,我們進行一下項目測試,依次輸入以下指令,最后會得到輸出:"Hello, World!":
test_opencvsharp
dotnet run
3. 添加 Nuget Package 程序包
? OpenCvSharp4是一個可以跨平臺使用的程序包,并且官方也提供了編譯好的程序包,用戶可以根據自己的平臺進行安裝。在Mac OS上,主要需要安裝一下兩個包,分別是OpenCvSharp4的官方程序包以及OpenCvSharp4的運行依賴包。
dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.runtime.osx_arm64 --prerelease
? 安裝完上面兩個安裝包后,項目的配置的文件中會增加下面兩個配置。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="OpenCvSharp4" Version="4.8.0.20230708" />
<PackageReference Include="OpenCvSharp4.runtime.osx_arm64" Version="4.8.1-rc" />
</ItemGroup>
</Project>
emsp; 接下來運行dotnet run,檢驗項目中是否包含所需要的配置文件:OpenCvSharp.dll、runtimes/osx-arm64/native/。打開項目運行生成的文件夾bin/{build_config}/{dotnet_version}/,在本項目中是bin/Debug/net6.0/文件夾,如下圖所示:
可以看出,在程序運行后,安裝的程序包中所有項目都已經加載到當前項目中,如果出現缺失,就需要找到程序包位置,將該文件復制到指定路徑。
3. 測試應用
? 最后我們編寫項目代碼進行測試,如下面代碼所示:
using System;
using OpenCvSharp;
namespace test_opencvsharp
{
internal class Program
{
static void Main(string[] args)
{
Mat image = Cv2.ImRead("image.jpg");
Mat image2=new Mat();
if (image!=null)
{
Console.WriteLine("srcImg is OK!");
}
Console.WriteLine("圖像的寬度是:{0}",image.Rows);
Console.WriteLine("圖像的高度是:{0}", image.Cols);
Console.WriteLine("圖像的通道數是:{0}", image.Channels());
Cv2.ImShow("src", image);
Cv2.CvtColor(image, image2, ColorConversionCodes.RGB2GRAY);//轉為灰度圖像
Cv2.ImShow("src1", image2);
Cv2.WaitKey(0);
Cv2.DestroyAllWindows();//銷毀所有窗口
}
}
}
? 項目代碼運行后,最后呈現效果如下圖所示:
4. 總結
? 在本次項目中,我們成功實現了在Mac OS上使用OpenCvSharp,并成功配置了OpenCvSharp依賴庫,實現了在.NET 6.0環境下使用C#語言調用OpenCvSharp庫,實現的圖片數據的讀取以及圖像色彩轉換,并進行了圖像展示。
總結
以上是生活随笔為你收集整理的【OpenCV】在MacOS上使用OpenCvSharp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023年度总结
- 下一篇: Go 语言为什么建议多使用切片,少使用数