OpenCvSharp函数篇(查函数自用)

本文介绍了OpenCV中的Mat对象创建,包括不同方式的初始化。此外,详细讲解了如何使用Cv2命名和显示窗口,加载图片,调整窗口大小以及保存图片。还提到了图像处理中的按位与和或运算,如BitwiseAnd()和BitwiseOr()函数用于图像合并。
摘要由CSDN通过智能技术生成

目录

 Mat对象

创建窗口 Cv2.NamedWindow()

加载图片 Cv2.ImRead()

展示窗口 Cv2.ImShow()

修改窗口大小 Cv2.ResizeWindow()

 保存图片 Cv2.ImWrite()


 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(可选): 掩码图像,用于指定哪些位置进行按位与运算。
  • 对于每个输入图像 src1src2,都会执行按位与运算。
  • 如果提供了掩码图像 mask,则只有在掩码图像中对应位置的像素为非零时,才进行按位与运算。这可以选择性地应用按位与操作。src2的白色区域保持src1原像素,黑色区域置黑色(0)
  • 结果存储在输出图像 dst 中。

 按位或运算  Cv2.Bitwiseand() 图像合并

Cv2.BitwiseOr(src1, src2, dst, mask);

参数同上,src2的黑色区域保持src1原像素,白色区域置白色(255)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值