本文主要是介绍CJ寻梦记:OpenCV遍历图像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 widthconst in divideWidth = 128;uc
这篇关于CJ寻梦记:OpenCV遍历图像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!