Skip to content

thu-cs-lab/CoeConverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoeConverter

本项目提供了两个工具,用于将图片或二进制文件转换为 COE 格式。

依赖

本项目至少需要 Python 3.7 以上,在 Windows / Linux / macOS 均经过测试。

克隆本项目,并运行 pip3 install -r requirements.txt 下载依赖后,即可直接运行。

pic2coe

将任何 OpenCV 支持的图片格式转换为 COE 文件。运行 python3 pic2coe.py --help 可查看程序支持的所有选项,解释如下:

  • mode 表示转换图片的模式(灰度或者 RGB 彩色);
  • channel_width 表示图片每个颜色通道的位宽,默认为 8(数设实验板 HDMI 接口每个颜色通道支持的最大位宽);
  • word_width 表示 COE 中每个字(即一个地址对应的数据)的宽度,它必须为一个像素位宽的整数倍(在灰度模式下为 1 倍的 channel_width,在彩色模式下为 3 倍的 channel_width);如果不指定或者设置为 -1,表示自动设置为一个像素的位宽;
  • threshold 表示二值化时使用的像素阈值。该选项只在 channel_width 为 1 时起作用;如果后者大于 1,则总是截取最高的几位;
  • dump_radix 为输出 COE 文件的数据格式,可以为二进制或者十六进制。

一个额外的要求是,图片的像素数量能够整除每个字中像素的数量;也就是说,图片需要能够刚好装入整数个字中。

一些例子:

  • -m gray -c 4 -w 16 -r HEX:将图片输出为灰度,每个像素位宽为 4,每个字中包含 4 个像素(位宽为 16),输出格式为十六进制
  • -m rgb -c 8 -w -1 -r HEX:(默认设置)将图片输出为 RGB 三个通道,每个像素位宽为 24(3 * 8),每个字包含 1 个像素(位宽为 24),输出格式为十六进制

在 COE 文件的每个字中,像素按顺序从低位向高位排列;一个像素中,通道顺序由低到高为 R、G、B。举个例子,如果有 RGB 值为 (1, 2, 3)(4, 5, 6) 的两个像素排列在同一个字中,并且通道宽度为 3,则对应转换后的数据为 110_101_100_011_010_001

bin2coe

将任何二进制文件转换为 COE 文件。运行 python3 bin2coe.py --help 可查看程序支持的所有选项,含义与 pic2coe 中相同。

本程序要求 word_width 为 8 的倍数(即每个 word 中含有整数个字节)。如果文件长度不是 word 的整数倍,则会自动在最后填充零。

About

Convert image / binary file to COE format

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages