|
以前很早就在论坛上看到有人做过播放bad apple的装置,加上我也关注过东方project,所以一直中毒不浅,最近忍不住做了一个,借此坛贵地献一下丑。
主控用的是stm32rbt6,屏幕是OCM12864,加上一个16M的古董SD卡。自己先从优酷上down了一个Bad apple的原画视频,用KMPplayer的捕获功能按每秒25帧截成3000多帧,之后用MATLAB写了代码把这些图批量处理成黑白二值图,按液晶显示的格式用二进制格式写入到.txt文件中,相当于丢了一个大数组进去。把这个TXT文件(3M左右)放到SD卡里,用winhex先搜到文件名在根目录里的位置,再根据根目录里面的偏移量算出文件在存储区的位置,找到那个位置后记下所占的第一个扇区的编号,记得一定是物理地址,这个会作为stm32读取数据的依据,关于SD卡文件系统我也是现学的,说多了恐怕会露怯。
http://www.tudou.com/programs/view/S7Sy9A40Z4k/
附MATLAB代码,
f=fopen('E:\ARM\STM32\截图\badapple.txt','wb')
for k=470:3666
s1=num2str(k)
switch length(s1)
case 3
s2=strcat('0',s1)
case 4
s2=s1
end
s3=strcat('E:\ARM\STM32\截图\ba00',s2,'.bmp')
I=imread(s3)
t=graythresh(I)
I1=im2bw(I,t/4)
for i=1:1:8
for j=1:1:128
date=~I1(i*8,j)*128+~I1(i*8-1,j)*64+~I1(i*8-2,j)*32+~I1(i*8-3,j)*16+~I1(i*8-4,j)*8+~I1(i*8-5,j)*4+~I1(i*8-6,j)*2+~I1(i*8-7,j);
fwrite(f,date,'uint8')
end
end
end
fclose(f)
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|