OpenCV基本的矩阵和图像算子相关问题描述

文章详细阐述了OpenCV库中矩阵操作的一系列规则,包括饱和计算确保值在类型范围内,自动或手动调整输出矩阵的类型和尺寸,支持矩阵与标量运算,掩码应用选择性计算,通过dtype参数灵活指定输出类型,以及原位操作和多通道处理的细节。这些规则保证了矩阵运算的灵活性和安全性。

一些矩阵类的操作函数,它们的输入为矩阵类型,或者输出为矩阵类型,或者输入输出同为矩阵类型。比如cv::abs()计算矩阵中所有元素的绝对值,cv::add()实现两个矩阵逐元素相加等类似这样的一些矩阵操作函数,他们通常都遵循一些通用的规则。

        ①饱和

        计算的输出值被整合到输出矩阵的类型范围内。(saturetion_cast是opencv提供的一种转换方法,它可以将高于或低于目标类型取值范围区间的数值限制为取值类型的最大值和最小值。对于uchar来说,任何高于255的值都会被设置为255,任何小于0的值都会被转化为0,0—255之间的数值会正常取整。

        ②输出

        如果输出矩阵的类型和尺寸不符合所要求的类型和尺寸,将使用cv::Mat::create()重新创建输出矩阵,大部分函数要求的输出矩阵的类型和尺寸与输入矩阵的往往都相同。

        ③标量

        对于许多函数,比如cv::add()函数,都允许两个矩阵相加或者一个矩阵和一个标量相加。当一个矩阵和一个标量相加时,其结果等同于提供一个所有元素都是这个标量的矩阵。

        ④掩码

        在一个函数中存在掩码参数时,则只会计算对应于掩码值不为0的位置的元素的计算矩阵。

        ⑤dtype

        许多算法和同类的函数不需要输入矩阵的类型相同,即使它们相同,输出矩阵也可能有与输入不同的类型。在这些情况下,输出矩阵必须明确通过dtype参数指定其深度。当dtype参数存在时,可以将dtype参数设置为任何基本类型(比如CV_32F),结果矩阵将为该类型。如果dtype设置的类型与输入类型相同,那么dtype可以设置为默认值-1,其表示输出矩阵与输入矩阵类型相同。

        ⑥原位操作

        除非另有声明,否则可以将输出写入输入矩阵中。意思就是说,现在有一个矩阵作为输入,一个矩阵作为输出,且其尺寸和类型都相同的任何操作,都可以将输出矩阵使用为输入矩阵。

        ⑦多通道

        对于不需要使用多通道的操作,如果给定多通道参数,则每个通道都被单独处理。

上面提到的这7项基本上就是对矩阵进行操作中可能会遇到的一些问题。

        

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值