目录
- Using块
- 概念
- using 添加到局部变量声明。
- 安装opencvsharp
- 显示图片
- 边缘检测
Using块
概念
有时你的代码需要非托管的资源,如文件句柄、 COM 包装器或 SQL 连接。 一个Using块确保一个或多个此类资源的释放你的代码完成与之时。 这使它们可用于其他代码使用。
托管的资源释放由.NET Framework 垃圾回收器 (GC) 而无需您采取任何额外的编码。 不需要Using托管资源的块。 但是,仍可以使用Using块以强制释放托管资源而不是等待垃圾回收器。
一个Using块都有三个部分: 获取、 使用情况和可供使用。
获取意味着创建变量并将其初始化,以便向系统资源。 Using语句可以获取一个或多个资源,也可以在进入块之前获取恰好一个资源,其提供给Using语句。 如果你提供resourceexpression,必须在将控制权传递给之前获取资源Using语句。
使用情况意味着访问资源并使用它们执行操作。 之间表示资源的使用。
处置方法调用Dispose方法中的对象上resourcename。 这允许要明确终止其资源的对象。 End Using语句释放的资源下Using块的控件。
本地的生存期 using 将扩展到声明它的范围的末尾。
using 添加到局部变量声明。
if (...)
{
using FileStream f = new FileStream(@"C:\users\jaredpar\using.md");
// statements
}
// Equivalent to
if (...)
{
using (FileStream f = new FileStream(@"C:\users\jaredpar\using.md"))
{
// statements
}
}
然后,将 using 按声明的反向顺序来处理局部变量。
{
using var f1 = new FileStream("...");
using var f2 = new FileStream("..."), f3 = new FileStream("...");
...
// Dispose f3
// Dispose f2
// Dispose f1
}
安装opencvsharp
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
安装方式如下:
或者
PM>Install-Package OpenCvSharp4.Windows
这是网址
https://www.nuget.org/packages/OpenCvSharp4.Windows/
显示图片
放一个按钮,然后输入以下代码,按下按钮后,显示图片。
using OpenCvSharp;
private void button1_Click(object sender, EventArgs e)
{
var src = new Mat("test1.png", ImreadModes.Color);
using (new Window("src image", src))
{
Cv2.WaitKey();
}
}
运行结果如下:
边缘检测
使用 cv2.Canny()来实现 Canny 边缘检测
代码如下
var src = new Mat("test1.png", ImreadModes.Grayscale);
var dst = new Mat();
Cv2.Canny(src, dst, 50, 200);
using (new OpenCvSharp.Window("src image", src))
using (new OpenCvSharp.Window("dst image", dst))
{
Cv2.WaitKey();
}
}