提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
1.OpenCVSharp的简介
概念:OpenCVSharp是C#的计算机视觉库,直接封装了很多OpenCV的方法,降低处理图像的难度
概念:OpenCVSharp是C#的计算机视觉库,直接封装了很多OpenCV的方法,降低处理图像的难度
Mat:表示一个类,是Matrix的缩写,表示矩阵的大小存储的地址,这里用来存储图像
Mat有很多类型,可以创建空类型,也可以直接来存储图像的地址。
Mat的构造函数:
//Mat构造函数有很多种类型
public Mat(); //可以声明Mat类型的变量
public Mat(string fileName, ImreadModes flags = ImreadModes.Color);//图像的路径,图像的颜色类型
Mattype: 表示矩阵中元素的类型以及矩阵的通道个数
命名规则:CV_(位数)+(数据类型)+(通道数),它是一系列预定义的常量U;表示无符号整型、S: 表示符号整型、F:是浮点数。C1,C2,C3,C4表示通道1,2,3,4
举例:CV_16UC2,表示的是元素类型是一个16位的无符号整数,通道为2。
单通道的灰度图和三通道的RGB图的对应参数为CV_8UC1、CV_8UC3。
声明: src指输入的原图像 dst指输出图像、与原图像有相同的大小和深度
一、图像的读取、显示、保存
例子:
Mat src = new Mat(@"C:\Users\LQ\Desktop\1.jpg",ImreadModes.Grayscale);
Window window = new Window("输出窗口",src,WindowFlags.FreeRatio);
Cv2.ImShow("输出窗口",src);
Cv2.ImWrite(@"C:\Users\LQ\Desktop\3.jpg", src);
Cv2.WaitKey(0);
函数:
读取图像:一般利用mat容器直接读取
显示图像:
Cv2.ImShow("输出窗口",src);
保存图像
Cv2.ImWrite(@"C:\Users\LQ\Desktop\3.jpg", src);
注意:
1.需要创建一个窗口进行显示图像,Cv2.ImShow()函数会自动显示,但是显示的图像过 大,而且不能进行缩放,所以一般需要自己创建一个窗体
2.创建窗体的名称必须与Cv2.ImShow()显示窗体的名称一致
例如:
Window window = new Window("输出窗口",src,WindowFlags.FreeRatio);
暂停图像:
Cv2.WaitKey(0); 按下停顿键,0为特殊值,表示永远停顿,若为1,则只停顿一毫秒
Cv2.WaitKey(0);
//ImreadModes: 读取的模式 枚举类型
UNchanged: 如果设置,则按原样返回加载的图像(带有 alpha 通道,否则得到裁剪)。
Grayscale: 如果设置,请始终将图像转换为单通道灰度图像。
Color: 如果设置,请始终将图像转换为 3 通道 BGR 彩色图像。
AnyDepth: 如果设置,当输入具有相应的深度时返回 16 位/32 位图像,
AnyColor: 如果设置,将以任何可能的颜色格式读取图像。
LoadGdal: 如果设置,请使用 gdal 驱动程序加载图像。
IgnoreOrientation: 如果设置,请勿根据 EXIF 的方向标志旋转图像。
//WindowFlags:窗口显示的方式
WINDOW_NORMAL 显示图像后,允许用户随意调整窗口大小
WINDOW_AUTOSIZE 根据图像大小显示窗口,不允许用户调整大小
WINDOW_OPENGL 创建窗口的时候会支持OpenGL
WINDOW_FULLSCREEN 全屏显示窗口
WINDOW_FREERATIO 调整图像尺寸以充满窗口
WINDOW_KEEPRATIO 保持图像的比例
WINDOW_GUI_EXPANDED 创建的窗口允许添加工具栏和状态栏
WINDOW_GUI_NORMAL 创建没有状态栏和工具栏的窗口
总结
好好学习,天天向上