数字图像处理之24位真彩色转256色调色边图
2013-12-24 00:15
579 查看
真彩图即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 ^ (4 + 4 + 4)的空间,时间也变得更短了,可以根据需求的精度进行选择。
对于颜色匹配,只要选取min((r - r') ^ 2 + (g - g') ^ 2 + (b - b') ^ 2))的那种颜色就好了.
由于代码不是我写的- -我就不贴了(- -囧)等考完试了补上。
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 ^ (4 + 4 + 4)的空间,时间也变得更短了,可以根据需求的精度进行选择。
对于颜色匹配,只要选取min((r - r') ^ 2 + (g - g') ^ 2 + (b - b') ^ 2))的那种颜色就好了.
由于代码不是我写的- -我就不贴了(- -囧)等考完试了补上。
相关文章推荐
- 8叉数算法处理将24位真彩色变为8位伪彩色图像
- C/C++ BMP(24位真彩色)图像处理(3)------图像の放大缩小(双线性插值)
- 数字图像处理基础:教你如何区分单色图像、灰度图像、伪彩色图像、真彩色图像
- 彩色图像边缘检测--求RGB的最大变化率方向(数字图像处理(Digital Image Processing Second Edition)冈萨雷斯)
- C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
- 【原】数字图像处理学习之三彩色图像处理
- C/C++ BMP(24位真彩色)图像处理(4)------图像の旋转
- C/C++ BMP(24位真彩色)图像处理(2)------图像截取
- 数字图像处理——用Java将彩色图像转换为灰度图像
- C/C++ BMP(24位真彩色)图像处理(2)------图像の截取
- 系统学习数字图像处理之彩色图像处理
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
- 数字图像处理:3.伪彩色处理
- C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
- 数字图像处理(四) 彩色图像拼接
- Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法
- Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
- 数字图像处理 彩色图象处理
- 数字图像处理 RGB与HIS彩色空间分割
- C/C++ BMP(24位真彩色)图像处理(1)------图像の打开与数据区处理