CJ寻梦记:OpenCV遍历图像

本文介绍了OpenCV中遍历图像的多种方法,包括颜色压缩、指针遍历、迭代遍历和LUT操作。颜色压缩通过映射表简化计算,指针遍历直接访问内存,迭代遍历利用迭代器,而LUT则用于高效地重新映射图像像素。
摘要由CSDN通过智能技术生成

1.颜色压缩

颜色压缩(Color Reduction)最简单的理解就是减少表示图像的颜色数目,我们都知道,8位位深的3通道RGB真彩图像包括了1600多万(16777216)的颜色数目,其实在某些应用中用不到这么多数量(例如图像传输(transmission)、分割(segmentation)、压缩(compression))的颜色。这也是一个研究的小方向,想了解更多,可以阅读文章Adaptive Color Reduction,Color reduction and estimation of the number of dominant colors by using a self-growing and self-organized neural gas。

在这里,我们实现一个很简单的方法:

I_old为输入的像素值,I_new为输出的像素值,divideWidth代表要减少的度,我们可以理解为divideWidth为128的时候,对于灰度图像就做的是一个阈值为128的二值化。

上点图更直观一点,左边为灰度原始图像,右边为输出图像:

当divideWidth为64时:

根据以上描述,实际上这个公式我们可以建立一个映射表来避免重复计算,对于0-255的有限的输入值,建议输出值的映射表:

// color space divide width

const in divideWidth = 128;

uchar table[256];

// first, we should build the converting table

for(int i=0; i < 256; i++)
{
    table[i] = (uchar)(divideWidth * (i / divideWidth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值