2.2 openCv -- 如何使用 OpenCV 进行图像扫描、查找表操作及时间测量

目标

我们将寻找以下问题的答案:

  • 如何遍历图像中的每一个像素?
  • OpenCV中的矩阵值是如何存储的?
  • 如何度量我们算法的性能?

我们的测试案例 让我们考虑一个简单的色彩缩减方法。由于使用无符号字符类型(C 和 C++)来存储矩阵中的项目,像素的一个通道可能有多达 256 种不同的值。对于三通道图像,这可能允许形成过多的颜色(确切地说是 1600 万种)。处理如此多的色彩可能会严重拖慢我们算法的性能。然而,在某些情况下,使用较少的色彩就足以得到相同的结果。

在这种情况下,我们通常会进行色彩空间缩减。这意味着我们将当前色彩空间的值除以一个新的输入值,以获得更少的颜色。例如,零到九之间的任何值都取新的值零,十到十九之间的任何值取值十,以此类推。

当你将一个 uchar(无符号字符,即值介于零和 255之间)类型的值除以一个整型值时,结果也将是 char 类型。这些值只能是 char 值。因此,任何小数部分都将向下取整。利用这一事实,上述操作在 uchar 域内可以表达为:

一个简单的色彩空间缩减算法仅仅由遍历图像矩阵中的每一个像素并应用上述公式组成。值得注意的是,我们进行了除法和乘法运算。这些操作对于系统来说非常耗时。如果可能,我们应该避免使用这些昂贵的操作,而改用更便宜的操作,如几个减法、加法,或者在最好的情况下,简单的赋值。此外,注意我们对上述操作的输入值数量是有限的。在 uchar 系统的情况下,确切地讲是 256。

因此,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenCv学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值