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

在我们使用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事件,开始编写代码。如下:

csharp 复制代码
 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 转 bitmap
                Bitmap bitmap = BitmapConverter.ToBitmap(mat);
                this.PictureBoxFace.Image = bitmap;
            }
            else
            {
                MessageBox.Show("读取图片失败!");
            }
        }

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

3 编译实现

代码完善之后,开始编译程序,这里就不介绍编译步骤了。

在弹出的窗口对话框中选择要显示的图片。

在应用窗口中显示选择的图片。

相关推荐
CoderYanger8 小时前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger8 小时前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
CoderYanger10 小时前
动态规划算法-子数组、子串系列(数组中连续的一段):26.环绕字符串中唯一的子字符串
java·算法·leetcode·动态规划·1024程序员节
韩家阿杰2 天前
RabbitMQ技术的使用
1024程序员节
CoderYanger2 天前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger2 天前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CoderYanger2 天前
动态规划算法-斐波那契数列模型:2.三步问题
开发语言·算法·leetcode·面试·职场和发展·动态规划·1024程序员节
CoderYanger2 天前
动态规划算法-简单多状态dp问题:16.买卖股票的最佳时机含手续费
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger2 天前
C.滑动窗口-求子数组个数-越短越合法——3258. 统计满足 K 约束的子字符串数量 I
java·开发语言·算法·leetcode·1024程序员节
CoderYanger2 天前
动态规划算法-路径问题:9.最小路径和
开发语言·算法·leetcode·动态规划·1024程序员节