当前位置: 首页 > news >正文

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代替。

运行程序

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

参考资料

  • https://github.com/shimat/opencvsharp
  • C# 无法加载 DLL“OpenCvSharpExtern
http://www.lryc.cn/news/291846.html

相关文章:

  • Stable Diffusion系列(四):提示词规则与使用
  • vue3动态循环引入本地静态图片资源
  • k8s从私有库harbor中拉取镜像
  • HCIA-Datacom实验指导手册:4.2 实验二:AAA配置实验
  • 黑马程序员前端web入门:新浪新闻
  • 力扣_字符串2—最长有效括号
  • 小程序接入企业微信「联系我」功能
  • jdk17新特性—— 密封类(Sealed Classes)
  • 【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的HA高可用解决方案
  • 计算机网络-物理层设备(中继器 集线器)
  • PaddleDetection学习4——使用Paddle-Lite和OpencCV在 Android 上实现实时的人脸检测(java)
  • mkcert的安装和使用,5分学会在本地开启localhost的https访问方式
  • RHCE DNS域名解析服务器
  • 创建表与删除表(六)
  • 微信开发者工具 git 拉取 failed invalid authentication scheme
  • (4)Elastix图像配准:3D图像
  • windows安装oracle之后怎么连接使用
  • 在前端开发中,常见的数组循环方式有以下几种:
  • Redis -- 单线程模型
  • C语言第十五弹---操作符(上)
  • 使用宝塔面板访问MySQL数据库
  • Win10 双网卡实现同时上内外网
  • Django模型(六)
  • 【Linux】Linux基本指令
  • stm32中的SPI
  • ChatGPT可与自定义GPTs一起使用,智能AI代理时代来啦!
  • 《Numpy 简易速速上手小册》第1章:Numpy 基础(2024 最新版)
  • 【美团】SaaS技术部-后端研发工程师(海外业务)
  • linux安装mongodb数据库启动报错? 都是冰红茶滴水儿
  • win11安装wsl作为linux子系统并当作服务器