求24位真色彩,转化为256色的算法?

banping 2003-10-21 10:58:39
两个不同的图形系统,一个用的是24位真色,一个用的是256色!
我取得24位真色,求到其RGB,怎么算出近似的256色的RGB??
...全文
181 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwu 2003-10-21
  • 打赏
  • 举报
回复
如果图像包含的颜色数目n<=256种,就好办:统计24位真彩色图像实际用的颜色,对所用全部颜色编号,构成有n项颜色的调色板(n<=256),并把原图像每个像素用它的调色板编号代就行了。这时得到的8位图像就和原来的24位图像完全一样,看起来没有任何区别。

如果颜色数目n>256种,就很麻烦,产生的新的图像肯定要和原来的不同,只能做到和源图相似了。具体地可以用归类替代或抖动等不同方法来实现。

zzwu 2003-10-21
  • 打赏
  • 举报
回复
当然欢迎,交个朋友! zzwu@citiz.net
banping 2003-10-21
  • 打赏
  • 举报
回复
万分感谢!我己经找到算法了!
我想要转换的256色,己经有了他自己的调色板了!
不需要自己构造了。只要算出24位中的颜色与256色中差距最小的就可以了
我用的是int indes=(R-R1)的平方+(G-G1)的平方+(B-B1)的平方,求出
这个值的最小的256色中颜色索引就可以了!
十分感谢你!交个朋友吧??
zzwu 2003-10-21
  • 打赏
  • 举报
回复
求近似值的方法,就是往[6,6,6]位调色板靠。
[6,6,6]调色板是指R,G,B都用6位灰度级、级差为4的调色板,也就是

R G B
----------------
0 0 0 0
1 0 0 4
2 0 4 0
3 0 4 4
4 4 0 0
5 4 0 4
6 4 4 0
7 4 4 4
8 8 0 0
9 8 0 4
..
214 252 252 248
215 252 252 252
216 0 0 0
...
255 0 0 0

然后,每个24位颜色的每个RGB分量x,都改为[x/4]*4,其中[x/4]为整除,
例如,你列举的颜色(135,100,22)应改为
([135/4]*4,[100/4]*4,2[22/4]*4)= (132,100,20)
就行了。
调色板中编号为216后的40个项可以不用,也可以利用。


4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧