【C#】搭建环境之CSharp+OpenCV

embedded/2024/12/26 18:46:15/

在这里插入图片描述
在我们使用C#编程中,对图片处理时会用到OpenCV库,以及其他视觉厂商提供的封装库,这里因为OpenCV是开源库,所以在VS资源里可以直接安装使用,这里简单说明一下搭建的步骤及实现效果,留存。

1. 项目创建

1.1 创建Windows应用窗体

打开vs2022程序,我电脑安装的是这个版本,但对本次说明来说没啥影响。
创建Windows应用窗体。
在这里插入图片描述

1.2 添加控件

在已经创建的窗体中,添加picturebox控件和button控件,用于控制图像显示的效果。
在这里插入图片描述

1.3 添加引用

在右侧“解决方案资源管理器”中,右键项目,从菜单中选择“管理NuGet程序包”,打开程序包安装页面。
在这里插入图片描述
在“浏览”页搜索 OpenCvSharp4,
可以选择安装
OpenCvSharp4 + OpenCvSharp4.Extensions + OpenCvSharp4.runtime。
也可以选择安装
OpenCvSharp4.Windows + OpenCvSharp4.Extensions(我选择此项)。
在这里插入图片描述

2 编写代码

在已经创建好的项目中,进入button控件的click事件,开始编写代码。如下:

 private void Button1_Click(object sender, EventArgs e){string imgName = "";OpenFileDialog openFileDialog1 = new OpenFileDialog(){Filter = "图片(*.jpg/*.png/*.gif/*.bmp)|*.jpg;*.png;*.gif;*.bmp"};if (openFileDialog1.ShowDialog() == DialogResult.OK){imgName = openFileDialog1.FileName;Mat mat = new Mat(imgName, ImreadModes.Unchanged);// mat 转 bitmapBitmap bitmap = BitmapConverter.ToBitmap(mat);this.PictureBoxFace.Image = bitmap;}else{MessageBox.Show("读取图片失败!");}}

这里只是简单的加载一下图片资源,验证OpenCV库是否好用。

3 编译实现

代码完善之后,开始编译程序,这里就不介绍编译步骤了。
在弹出的窗口对话框中选择要显示的图片。
在这里插入图片描述
在应用窗口中显示选择的图片。
在这里插入图片描述


http://www.ppmy.cn/embedded/133996.html

相关文章

本地docker部署中间件和应用

Docker Desktop搭建 安装完成之后使用docker下载镜像,报以下错误: 解决办法: Docker Engine配置能访问的镜像地址: {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled…

Angular中ChangeDetectorRef.detectChanges是如何实现的,对比vue种的nextTick有何不同

ChangeDetectorRef.detectChanges的介绍: ChangeDetectorRef.detectChanges() 是 Angular 中用于手动触发变更检测的方法。它的主要作用是立即检查组件的视图和数据绑定,更新界面以反映模型数据的变化。detectChanges() 是通过 Angular 的变更检测机制来…

Python 自动化运维:CI/CD与DevOps实践的深度探讨

Python 自动化运维:CI/CD与DevOps实践的深度探讨 目录 🚀 持续集成与持续部署基础🔧 使用GitHub Actions或Jenkins实现自动化构建与部署📦 Docker基础与容器化应用的实现☸️ Kubernetes的基本概念与集群管理 1. 🚀 …

【Android】Kotlin教程(4)

文章目录 1.field2.计算属性3.主构造函数4.次构造函数5.默认参数6.初始化块7.初始化顺序7.延迟初始化lateinit8.惰性初始化 1.field field 关键字通常与属性的自定义 getter 和 setter 一起使用。当你需要为一个属性提供自定义的行为时,可以使用 field 来访问或设置…

ELK Stack与Graylog:强大的日志分析和可视化工具

ELK Stack的使用方法 ELK Stack由Elasticsearch、Logstash和Kibana三个核心组件组成,它们协同工作,提供了从日志收集、解析、存储到可视化的完整解决方案。 安装与配置Elasticsearch Elasticsearch是ELK Stack的存储和查询引擎,负责存储日…

【安全解决方案】深入解析:如何通过CDN获取用户真实IP地址

一、业务场景 某大型互联网以及电商公司为了防止客户端获取到真实的ip地址,以及达到保护后端业务服务器不被网站攻击,同时又可以让公安要求留存网站日志和排查违法行为,以及打击犯罪的时候,获取不到真实的ip地址,发现…

Vue3 学习笔记(十二)侦听器详解

在 Vue 3 中,侦听器是一种响应式特性,允许你观察和响应 Vue 实例上的数据变动。Vue 提供了 watch 和 watchEffect 两个函数来创建侦听器。 1、watch 侦听器 watch 是一个用于侦听特定数据源变化的函数。它允许你指定一个或多个数据源,并在这些…

每天五分钟深度学习框架pytorch:从底层实现一元线性回归模型

本文重点 本节课程我们继续搭建一元线性回归模型,不同的是这里我们不使用pytorch框架已经封装好的一些东西,我们做这个目的是为了更加清楚的看到pytorch搭建模型的本质,为了更好的理解,当然实际中我们还是使用pytorch封装好的一些东西,不要重复造轮子。 模型搭建 #定义…