八叉树颜色量化

上传人:公**** 文档编号:455656248 上传时间:2022-09-13 格式:DOCX 页数:5 大小:40.73KB
返回 下载 相关 举报
八叉树颜色量化_第1页
第1页 / 共5页
八叉树颜色量化_第2页
第2页 / 共5页
八叉树颜色量化_第3页
第3页 / 共5页
八叉树颜色量化_第4页
第4页 / 共5页
八叉树颜色量化_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《八叉树颜色量化》由会员分享,可在线阅读,更多相关《八叉树颜色量化(5页珍藏版)》请在金锄头文库上搜索。

1、使用八叉树算法实现真彩色(24Bits)转256色要实现此功能, 主要就是从真彩色中查找出最能代表整张图像的256种颜色,建 立调色板八叉树就是为了找出这256种颜色.1)建立八叉树八叉树节点的特性就是每个节点最多有8个字节点,编号为07以RGB值建立八叉树,首先建立根节点(Root),然后分别以RGB的每一位分别组成一个07的值,依次插入树中。以RGB(123,54,78)为例,RGB32 4 815 711 O 1 11101 11071 no 1(o o O0 5 6 6 5 3 7/经过该节点的个数/ R分量的总和/ G分量的总和/ B分量的总和/是否为叶子节点.以此类推,将所有的RG

2、B值逐层插入到八叉树中,在每个节 点上,记录所有经过的节点的RGB值的总和,已及RGB颜色个 数。八叉树节点结构如下:typedef struct tagNodeDWORD dwCounter ;DWORD dwRedSum ;DWORD dwGreenSum ;DWORD dwBlueSum ;BOOL bLeafNode ;tagNode * psChild8; /分别指向该节点编号为07的8个子节点.SNode ;插入的过程中,如果节点不存在,则需要创建新的节点,然后 增加节点计数以及RGB各分量的总和当在插入时,发现节点已 经存在,且是叶子节点,则停止该颜色后续层数节点的插入。插 入完

3、一个颜色之后,如果叶子节点数超过了我们要得到的颜色数 (256色需要得到256种颜色),这时候就需要合并一些叶子节点 了,使的叶子节点的个数不超过我们要得到的颜色数。由于越底层的节点,数据的敏感度越低,所以,我们将从最底 层的节点开始合并。按节点计数值小的优先合并策略,将其字节 点的所有RGB分量以及节点计数全部记录到该节点中,并删除 其所有子节点。依此进行,直到合并后的叶子数符合要求为止。2. )提取调色板按照上述的步骤插入完所有的颜色之后,便建立起一颗叶子节 点不超过256的八叉树。此时,取出叶子节点中的RGB分量的 平均值(分量总和/节点计数),即是得到的调色板颜色值。3. )匹配调色板索引所谓匹配调色板索引,就是根据原始的RGB值,在调色板中 查找出最接近的颜色的索引。对每个RGB颜色,分别对调色板 数据求各分量的差值的平方和,求的的最小值对应的调色板颜色 的索引,即是该RGB颜色匹配到的调色板索引

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号