C#调用OpenCV开发简易版美图工具(cctv5体育节目表)

网友投稿 320 2022-06-21


前言

在C#调用OpenCV其实非常简单,因为C#中有很多OPenCV的开源类库。

本文主要介绍在WPF项目中使用OpenCVSharp3-AnyCPU开源类库处理图片,下面我们先来做开发前的准备工作。

准备工作

首先,我们先创建一个WPF项目。

然后,在Nuget上搜索OpenCVSharp,如下图:

接着,我们选择OpenCVSharp3-AnyCPU选项进行安装 。

安装了OpenCVSharp3-AnyCPU后,我们的项目会自动引入4个类库,如下图:

到这里,我们的准备工作就完成了,非常简单。

C#中应用OPenCV

现在,我们进入项目,进行OPenCV的调用。

我们先引入OpenCV相关的命名空间,如下:

1

2

using OpenCvSharp;

using OpenCvSharp.Extensions;

然后我们在项目中使用Mat类来进行图片操作。

----------------------------------------------------------------------------------------------------

红蓝颜色通道互换

在OPenCV里,Mat类是非常重要的,它是处理图片的入口。

现在,我们先做一个简单的图片操作,红蓝通道颜色互换,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Mat mat = new Mat(@"..\..\Images\ocv02.jpg", ImreadModes.Unchanged);

for (var y = 0; y < mat.Height; y++)

{

    for (var x = 0; x < mat.Width; x++)

    {

        Vec3b color = mat.Get(y, x);

        var temp = color.Item0;

        color.Item0 = color.Item2; //B 转 R

        color.Item2 = temp;        //R 转 B

        mat.Set(y, x, color);

    }

}

var mem = mat.ToMemoryStream();

BitmapImage bmp = new BitmapImage();

bmp.BeginInit();

bmp.StreamSource = mem;

bmp.EndInit();

imgOutput.Source = bmp;

mat.Dispose();/// 该方法在mat里被重写了,可以释放资源,可以放心调用

效果图如下:

可以看到,我们成功的处理了图片的红蓝通道颜色互换。

现在我们再多做一些OpenCV的操作。

腐蚀

代码如下:




版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:两个集合对比(两个集合对比差异)
下一篇:Winform中设置ZedGraph的曲线为折线、点折线、散点图(绘制下列曲线的图形(散点图与折线图))
相关文章

 发表评论

暂时没有评论,来抢沙发吧~