最开始看书的时候,对颜色削减总是不明白,最近又看了看,一下是自己的一点想法
彩色图像对于每个像素都有三个通道,每个通道都是由八位uchar数构成。
由于八位uchar型数据就是2^8,也就是256中数据情况,从0到255
因此彩色图像的每个像素可能的色彩就有256*256*256种可能(三个通道)
那么,自然就想到降低这么多色彩可能性以降低分析复杂度。
一种方法就是将几种颜色看成一种颜色,即为256种可能情况分成32种可能情况。
也就是说,0-7这几种颜色变化都看作0;8-15这几种颜色都看作8;以此类推
这样,人为确定一个颜色缩减比例,就可以得到:
256/N*256/N*256/N种可能情况,构成颜色缩减,降低分析复杂度。
另一个经常使用的是cv::Mat类提供的ptr指令,这个指令可以得到图像任意行的首地址。它是一个模板函数,返回第j行的首地址。
使用方法:
uchar *data = image.ptr<uchar>(j)