真彩图即RGB图0 0转256色调色板图据我查得,常用的算法有
1)流行色算法:
对图像中所有像素点的RGB值进行统计,找出出现次数最多的256种颜色作为调色板的颜色。然后将原图中的各个像素点与调色板图的颜色进行匹配,找出差异最小的颜色作为该像素点的颜色。算法特点,算法简单,容易实现,但出现失真的情况可能比较“严重”。
2)中位切分算法:
算法的基本思路是:在RGB彩色空间中,R、G、B三基色对应于空间的三个坐标轴,将每一坐标轴都量化为0~255,0对应于最暗(黑),255对应最亮,这样就形成一个边长为256的彩色立方体,所有可能的颜色都对应于立方体内的点。将该立方体切分为236个小立方体,每个立方体中都包含相同数量的在图像中出现的颜色点。取每个小立方体的中心点,则这些中心点构成236个颜色。算法特点:广泛应用于图像处理领域,但算法复杂,资源开销大。
3)(3)八叉树颜色量化算法
算法基本思路是:将图像中使用的RGB颜色值分布到层状的八叉树中。八叉树的深度可达9层,即根节点层加上分别表示8位的R、G、B值的每一位的8层节点。较低的节点层对应于较不重要的RGB值的位(右边的位),因此,为了提高效率和节省内存,可以去掉最低部的2 ~ 3层,这样不会对结果有太大的影响。叶节点编码存储像素的个数和R、G、B颜色分量的值;而中间的节点组成了从最顶层到叶节点的路径。这是一种高效的存储方式,既可以存储图像中出现的颜色和其出现的次数,也不会浪费内存来存储图像中不出现的颜色。算法特点:效率高,效果好。
这儿博主主要讲解第一种流行色算法:
由于如果要统计所有RGB颜色需要2 ^ (8 + 8 + 8)的空间。空间开销也不小,为了快速也为了节省空间,我们取RGB的前4位(后四位为0的话,最大误差是15)作为一种颜色。那么只需要2