C#图像处理教程:VS2022+Win7+OpenCvSharp4创建第一个图像处理实例hello lenna

系列文章目录

在这里插入图片描述


在这里插入图片描述


OpenCvSharp简介

C#(C Sharp)是一款windows上的开发语言,其优势是开发窗口程序比较简单快捷。
OpenCV是一款常用的图像处理库,但是官方支持C++和Python。
OpenCvSharp是一款使得OpenCV支持C#开发的一个库。基于Visual Studio开发。
在这里插入图片描述

OpenCvSharp的开源项目地址

github地址:https://github.com/shimat/opencvsharp

当前最新版本为4.6.0
在这里插入图片描述

OpenCvSharp的特点

  • OpenCvSharp 尽可能地以原生 OpenCV C/C++ API 风格为蓝本。
  • OpenCvSharp 的许多类都实现了 IDisposable。无需管理不安全的资源。
  • OpenCvSharp 不会强迫您使用面向对象的编程风格。您还可以调用原生风格的 OpenCV 函数。
  • OpenCvSharp 提供了从 Mat 转换为 Bitmap(GDI+) 或 WriteableBitmap(WPF) 的函数。

OpenCvSharp的代码示例地址

https://github.com/shimat/opencvsharp_samples/


VS2022+Win7+OpenCvSharp4创建第一个图像处理实例hello world

创建项目

  • 打开VS2022
    在这里插入图片描述
  • 创建新项目
    在这里插入图片描述
  • 创建C#-Windows-控制台,控制台应用(.NET Framework)项目
    在这里插入图片描述
  • 配置新项目名称为:HelloLenna,选择项目保存位置,框架选择.NET Framework 4.8,点击创建
    在这里插入图片描述

添加OpenCvSharp引用

  • 为工程添加OpenCvSharp的dll
    右键项目的引用,点击管理NuGet程序包
    在这里插入图片描述
  • 在浏览页签,输入框中输入OpenCvSharp,在结果列表里选择OpenCvSharp4.Windows,然后点击中间的安装按钮
    在这里插入图片描述
  • 点击OK,确认安装
    在这里插入图片描述
    输出窗口提示已完成:
    在这里插入图片描述

引用里已经自动添加了相关的引用:

在这里插入图片描述

查看引用的OpenCvSharp属性可以看到dll所在的路径:
在这里插入图片描述

源码解析

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloLenna
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var src = new Mat("lenna.png", ImreadModes.Grayscale);
            var dst = new Mat();

            Cv2.Canny(src, dst, 50, 200);
            using (new Window("src image", src))
            using (new Window("dst image", dst))
            {
                Cv2.WaitKey();
            }
        }
    }
}

拷贝lenna.png图片到bin\debug\文件夹下:
在这里插入图片描述

在这里插入图片描述

  • 源码解析:
// 添加OpenCvSharp命名空间using
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloLenna
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建源图Mat对象,加载lenna.png图像,加载的模式为灰度图
            var src = new Mat("lenna.png", ImreadModes.Grayscale);
            // 创建目标图Mat对象
            var dst = new Mat();
            
            // 调用Canny算子查找源图像边缘
            Cv2.Canny(src, dst, 50, 200);
            // 用窗口src image显示源图像
            using (new Window("src image", src))
            // 用窗口dst image显示目标图像
            using (new Window("dst image", dst))
            {
                // 等待键盘输入,退出程序
                Cv2.WaitKey();
            }
        }
    }
}

运行效果

  • F5执行效果:
    在这里插入图片描述

在这里插入图片描述

源码工程及资源下载

百度网盘
链接:https://pan.baidu.com/s/1oqah10VJ6Iy3XXqdbu9exg?pwd=1234
提取码:1234

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WayHonor-机器视觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值