目录
Mat对象
Mat():创建一个空的 Mat 对象。
Mat(int rows, int cols, MatType type):创建指定行数、列数和类型的空矩阵。
Mat(Size size, MatType type):创建指定大小和类型的空矩阵。
Mat(int rows, int cols, MatType type, Scalar scalar)
:创建指定行数、列数、类型和初始值的矩阵。
Mat(Size size, MatType type, Scalar scalar)
:创建指定大小、类型和初始值的矩阵。
Mat(int rows, int cols, MatType type, void* data)
:创建一个指定行数、列数、类型和数据指针的矩阵。
Mat(Size size, MatType type, void* data)
:创建一个指定大小、类型和数据指针的矩阵。
Mat(int rows, int cols, MatType type, void* data, long step)
:创建一个指定行数、列数、类型、数据指针和步长的矩阵。
Mat(Size size, MatType type, void* data, long step)
:创建一个指定大小、类型、数据指针和步长的矩阵。
构造函数的参数含义如下:
rows
:矩阵的行数。cols
:矩阵的列数。size
:矩阵的大小,以Size
对象表示。type
:矩阵的类型,使用MatType
枚举值指定。scalar
:初始值,使用Scalar
对象表示。data
:数据指针,用于指定矩阵的数据。step
:步长,用于指定矩阵的行与行之间的间隔。
创建窗口 Cv2.NamedWindow()
Cv2.NamedWindow("new", WindowFlags.Normal);
Cv2.DestroyAllWindows();#最后用于销毁窗口资源
1、第一个参数为窗口名称;
2、第二个参数为窗口状态,常用的两个:
WindowFlags.Normal:可以调整窗口大小,随意拖动。
WindowFlags.AutoSize:不能调整窗口大小,受图片大小影响
加载图片 Cv2.ImRead()
Mat mat = Cv2.ImRead(string fileName, [lmreadModes flags = lmreadModes.Color]);
1、第一个参数为文件路径;
2、第二个参数为如何读取图像:
ImreadModes.Color
表示以彩色模式读取图像,即保留图像的颜色信息。这意味着返回的 Mat
对象将具有三个通道(BGR顺序)
ImreadModes.Color
:以表示以彩色模式读取图像,即保留图像的颜色信息。这意味着返回的Mat
对象将具有三个通道(BGR顺序)
ImreadModes.Grayscale
:以灰度模式读取图像,将图像转换为单通道的灰度图像。ImreadModes.AnyDepth
:以原始深度读取图像,保留图像的原始位深度。ImreadModes.AnyColor
:以原始颜色模式读取图像,保留图像的原始颜色空间。
展示窗口 Cv2.ImShow()
Cv2.ImShow("new", img);
第一个参数为窗口名称,后面为Mat类,也就是前面加载的图片类
该方法如果第一个参数指定的窗口名称不存在,则会自动进行创建后显示。
修改窗口大小 Cv2.ResizeWindow()
Cv2.ResizeWindow("new", 640,480);#参数为(窗口名称,宽度,高度)
保存图片 Cv2.ImWrite()
Cv2.ImWrite(@"E:/1.png",img);#参数(文件路径,mat类)
按位与运算 Cv2.Bitwiseand() 图像合并
Cv2.BitwiseAnd(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = null)
src1
: 第一个输入图像。src2
: 第二个输入图像。dst
: 输出图像,用于存储按位与运算的结果。mask
(可选): 掩码图像,用于指定哪些位置进行按位与运算。- 对于每个输入图像
src1
和src2
,都会执行按位与运算。 - 如果提供了掩码图像
mask
,则只有在掩码图像中对应位置的像素为非零时,才进行按位与运算。这可以选择性地应用按位与操作。src2的白色区域保持src1原像素,黑色区域置黑色(0) - 结果存储在输出图像
dst
中。
按位或运算 Cv2.Bitwiseand() 图像合并
Cv2.BitwiseOr(src1, src2, dst, mask);
参数同上,src2的黑色区域保持src1原像素,白色区域置白色(255)