OpenCvSharp 学习笔记1 -- 基本对象和常见操作

一 : Mat 对象的创建
OpenCvSharp 版本:v4.0.30319

mat 对象继承了 IDisposable 接口,可以直接用using 语句。
mat 对象的构造函数有十几个之多,我这里之列举常用的几个。
Mat 在C++ 中是一个矩阵变量,但是在 C#中是一个对象,只能 new
Mat是图形的基本对象,
1. 创建Mat对象并显示图像,控制下台记得加 Cv2.Wait(0)

 string picpath = AppDomain.CurrentDomain.BaseDirectory + "2.png";
using (Mat mat = new Mat(picpath)) {
       Cv2.ImShow("abc", mat);
//Cv2.WaitKey(0); //控制台下加这一行 等待 }

读取图片并显示

 Mat mat =  Cv2.ImRead(picpath);
Cv2.ImShow("abc",mat);

结果:

2、显示单通道灰度图像

 Mat mat = Cv2.ImRead(picpath,ImreadModes.Grayscale);
            Cv2.ImShow("abc", mat);

         

3、自定义图形

Scalar color = new Scalar(255,0, 0); //BGR颜色 蓝色

/*
* 参数:
* 1: 行 --指定图像的像素行数,多个行组成图片的高度
* 2: 列 --指定图像的像素列数,多个列组成图片的宽度
* 3: 对象类型,结构体类型 矩阵数据类型(深度和通道数) MatType
* 4: 图像颜色

* 5:CV_8UC3其中8是8bit图 U是无符号 C是color通道数为3

*/

Mat mat = new Mat(100, 100, MatType.CV_8UC3, color);
Cv2.ImShow("abc",mat);

4、创建与原图大小一致,类型相同的黑色图形 

  using (var src = new Mat(picpath, ImreadModes.AnyColor | ImreadModes.AnyDepth))
            using (var dst = new Mat(src.Size(), src.Type(), Scalar.All(0)))   //与原图大小类型一致 ,黑色
            {
                //dst.Create();//分配新的数据和类型
                Cv2.ImShow("abc",src);
                Cv2.ImShow("cde",dst);
            }

5、视频播放

 

posted @ 2023-02-25 16:36  boenotuch  阅读(198)  评论(0编辑  收藏  举报