Gointerface接口声明实现及作用详解
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
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~