C#中使用OpenCvSharp4库读取本地图像并显示

C#中使用OpenCvSharp4库读取本地图像并显示

OpenCvSharp4是基于.NET 的 OpenCV 包装器,OpenCV源代码是采用C和C++写的,目前对于C++和Python开发者相对来说比较友好,对于Python开发者而言官方提供了opencv-python使用。
首选我们使用Visual Studio 2022创建一个.Net控制台程序ReadImageUseOpenCvSharp4,然后安装OpenCvSharp4安装包,我们在Visual Studio 2022中依次点击【项目】菜单->【管理 NuGet 程序包(N)】,如下面的Gif动态图所示:
Visual Studio 2022中C#控制台项目安装OpenCvSharp4库
可以看到安装完OpenCvSharp4包之后我们的App.Config文件中有了相关的依赖包,目前的最新版本是4.9.0.20240103,如下图所示:
![OpenCvSharp4包

接下来我们在C#项目中使用OpenCvSharp4库读取本地图片并显示,
首先我们下载一副数字图像处理中常用的lena.png
维基百科中的lena图片,512*512
将下载后的图像重命名为Lena.png放到项目对应目录,比如E:\SoftDevelop\CPlus\VS2022Projects\CSharpExamples\ReadImageUseOpenCvSharp4\ReadImageUseOpenCvSharp4\bin\Debug\images目录下,如下图所示:

Lena.png

C#中使用OpenCvSharp4库读取本地图像并显示很简单,对应的C#代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp;  // 导入OpenCvSharp命名空间

namespace ReadImageUseOpenCvSharp4
{
    public class Program
    {
        static void Main(string[] args)
        {
            Mat img = Cv2.ImRead("images/lena.png");    // 读取本地图像
            Cv2.ImShow("Lena Image", img);

            Cv2.WaitKey(0); // 永久等待,直到用户输入按键退出

            Cv2.DestroyAllWindows();    // 销毁所有窗口
        }
    }
}

直接运行以上代码发现报错了,错误如下:
运行程序报错
发现除了安装OpenCvSharp4这个包之外,还得安装OpenCvSharp4.runtime.win这个依赖包,如下图所示:
OpenCvSharp4.runtime.win
这一点在https://github.com/shimat/opencvsharp这个源代码地址首页有相关描述,如下图所示:
Windows下安装OpenCvSharp4
有关Windows下安装OpenCvSharp4包可以直接将OpenCvSharp4OpenCvSharp4.runtime.win这两个NuGet包添加到项目中。你也可以使用OpenCvSharp4.Windows代替。

运行程序

接下来运行上述代码,如下图所示:
运行结果

参考资料

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-29 15:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-29 15:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-29 15:48:02       82 阅读
  4. Python语言-面向对象

    2024-01-29 15:48:02       91 阅读

热门阅读

  1. Redis:入门(二)

    2024-01-29 15:48:02       52 阅读
  2. 【Linux笔记】编wpa_supplicantl库

    2024-01-29 15:48:02       51 阅读
  3. SpringMVC

    SpringMVC

    2024-01-29 15:48:02      53 阅读
  4. 多路IO复用服务器——select模型和poll模型

    2024-01-29 15:48:02       52 阅读
  5. mysql迁移至达梦数据库

    2024-01-29 15:48:02       53 阅读
  6. Linux中的知识点

    2024-01-29 15:48:02       54 阅读
  7. 面试经典150题(93-95)

    2024-01-29 15:48:02       55 阅读
  8. 深入了解Spring事件机制的作用与应用场景

    2024-01-29 15:48:02       54 阅读
  9. 美发行业微信小程序的产品功能设计

    2024-01-29 15:48:02       56 阅读
  10. 23种设计模式使用场景分析

    2024-01-29 15:48:02       67 阅读