数字图像处理 图像转换成文字(bmp2txt)

数字图像处理 图像转换成文字(bmp2txt)

0.引言

我最近在大B站看到很多的字符动画,让我想起了我初一的时候也做过这东西.(真让人怀恋啊,现在都大三了)
现在我想让大家了解了解,这个东西的算法是什么样的(思路上基本上大同小异)

1.介绍

bmp2txt ,就是将使用文字排列后,在显示文字时,看起来和对应的原图像有一些相似.
例如下图:
数字图像处理 图像转换成文字(bmp2txt)
数字图像处理 图像转换成文字(bmp2txt)
就是,将上上面这张图转换为下面这种形式.

2.算法介绍

其实算法很简单.
第一步,是将视频变成一帧帧的图片,(我们的看到的动画都可以理解成有许许多多的图片组成的)
第二步,是将这些图片二值化.
数字图像处理 图像转换成文字(bmp2txt)
第三步,将文字分成(8*16)一个的小方块,假设我们的每一帧的图像是1920*1080 ,那么我们可以分成 (1920%8)*(1080%16) 个小方块.
第四步,对每个小方块查找最相似的同大小的文字块,举个例子,全白的块,对应的文字块是(一个空格(空字符)),全黑的最合适的是(大小的”M”);

这是我在代码使用的文字块(在代码中要将他们分开)
数字图像处理 图像转换成文字(bmp2txt)
这样一个个替换,就是我们的要的文字版的图像了

代码

需要

  1. C++ ,支持 c++11 的版本
  2. opencv

注意

  1. opencv 无法处理声音,声音需要后期合成.使用AE之类的软件
  2. 代码中使用的二值化算法,是我很多年前找到的,忘记出处了.

百度代码下载:
链接:http://pan.baidu.com/s/1kVFSyMj 密码:uwu9
github 我就不弄了,