
項(xiàng)目摘要
通過(guò)視頻幀圖片提取,圖片批量裁剪,轉(zhuǎn)換為BMP文件并取模,獲得顯示屏代碼,基于STC32單片機(jī),在8x8點(diǎn)陣LED模塊上實(shí)現(xiàn)動(dòng)畫(huà)播放。
項(xiàng)目?jī)?nèi)容
動(dòng)態(tài)圖片顯示
- 將目標(biāo)動(dòng)圖或視頻提取為幀圖片,可通過(guò) MATLAB 程序?qū)崿F(xiàn);
- 將幀圖片裁剪為目標(biāo)顯示屏的像素比例,如 0.96 英寸 OLED 顯示屏的像素為 128x64, 則需將幀圖片按照 2:1 的寬高比進(jìn)行裁剪、對(duì)于單個(gè) 8x8 點(diǎn)陣則需按照 1:1 進(jìn)行裁剪,注意選擇目標(biāo)裁剪區(qū)域;
- **將裁剪過(guò)的幀圖片轉(zhuǎn)化為灰度圖像(以便后面進(jìn)行二值化),之后進(jìn)行像素縮小操作,將圖片調(diào)整至目標(biāo)顯示屏的像素分辨率,最后進(jìn)行二值化處理,并將處理結(jié)果存儲(chǔ)為 **
*.bmp格式文件; - **將批量保存的 BMP 文件按照幀順序重命名為 **
1,2,3...,之后使用[批量取模工具]生成相應(yīng)的 16 進(jìn)制代碼,復(fù)制到程序中即可。
詳見(jiàn): [嗶哩嗶哩 bilibili] .
**或者將幀圖片像素縮小至目標(biāo)顯示屏像素,保持彩色狀態(tài),存儲(chǔ)為 BMP 格式,使用批量取模工具,勾選 **轉(zhuǎn)換彩圖,調(diào)整閾值至適當(dāng)值(如66%),即可直接生成對(duì)應(yīng)代碼。
詳見(jiàn)附錄。該項(xiàng)目的STC代碼見(jiàn)附件。
附錄
圖片取模
- **提取視頻或 GIF 動(dòng)圖的幀為圖片,可使用 **MATLAB 或 [GIF Movie Gear] 軟件
- **使用 **Image2Lcd 軟件批量處理目標(biāo)幀圖片,并生成 BMP 格式圖片,以便后面讀取二值化數(shù)據(jù);
**這里推薦使用 **[廣州靈派科技] 的 **=OledTools=** 軟件對(duì)圖片進(jìn)行處理,可調(diào)整灰度閾值,對(duì)于像素點(diǎn)較少的情況,轉(zhuǎn)換效果最佳;缺點(diǎn)是不能進(jìn)行批量處理。
**對(duì)于 128x64 像素的轉(zhuǎn)換,各軟件均可。批量轉(zhuǎn)換推薦 **[PictureReader] 軟件,可批量生成 BMP 文件。
- **將BMP圖片轉(zhuǎn)化為數(shù)模,可使用 **CopyLeft By Horse2000 (字模提取)或 [PCtoLCD2018]軟件.
一些有趣的資源: [Wokwi OLED Animation Maker for Arduino]動(dòng)態(tài)圖標(biāo)顯示在 128x64 顯示屏利用 Arduino 代碼。
視頻幀提取
clear;
video_file='test.mp4';
video=VideoReader(video_file);
frame_number=video.NumFrames;
for i = 1:5:frame_number
image_name=strcat('test',num2str((i-1)/5+1)); % 每5幀取一張圖
image_name=strcat(image_name,'.jpg');
I=read(video,i); %讀出圖片
imwrite(I,image_name,'jpg'); %寫(xiě)入圖片
I=[];
end
MATLAB重命名文件的排序問(wèn)題
**可使用 **sort_nat 函數(shù)解決,注意需要下載安裝該函數(shù)。
file_path = '';
Tpath = 'Number'; % target path
img_path_list = dir([file_path '*.bmp']);%圖片路徑
img_num = length(img_path_list);
sort_nat_name=sort_nat({img_path_list.name});
for k = 1:img_num
image_name = sort_nat_name{k};%獲取圖片名稱
image = imread(strcat(file_path,image_name));%讀取圖片
imwrite(image,strcat(Tpath,int2str(k),'.bmp'),'bmp');
end
圖像裁剪
clear;clc;
file_path = ''; % 設(shè)定你存放圖片的目錄
img_path_list = dir(strcat(file_path, '*.jpg')); % 選后綴為 .jpg 的圖片
img_num = length(img_path_list); %獲得圖片數(shù)量
for n = 1:img_num
image_name = img_path_list(n).name;
image = imread(strcat(file_path, image_name));
crop_image = imcrop(image, [323 0, 1080, 1080]);
imwrite(crop_image, strcat('Cut/Cut', image_name)); % 保存文件
end
圖片像素調(diào)整
clear;clc;
numrows = 8;
numcols = 8;
file_path = ''; % 設(shè)定你存放圖片的目錄 - 當(dāng)前文件夾
img_path_list = dir(strcat(file_path, '*.jpg')); % 選后綴為 .jpg 的圖片
img_num = length(img_path_list); %獲得圖片數(shù)量
for n = 1:img_num
image_name = img_path_list(n).name;
image_n = image_name(1:end-4); % 刪除文件后綴
image = imread(strcat(file_path, image_name));
RtG_image = rgb2gray(image); % rgb to gray
RS_image = imresize(RtG_image,[numrows numcols]);
BNR_image = imbinarize(RS_image);
imwrite(BNR_image,strcat('Resize8x8RS',image_n,'.bmp'),'bmp');
end
相關(guān)資料見(jiàn)附件。*附件:STC_Flash_MAX7219.zip
轉(zhuǎn)載請(qǐng)注明來(lái)源,謝謝!
審核編輯 黃宇
-
led
+關(guān)注
關(guān)注
243文章
24594瀏覽量
690804 -
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45494瀏覽量
670262 -
點(diǎn)陣
+關(guān)注
關(guān)注
6文章
194瀏覽量
73412 -
stc32
+關(guān)注
關(guān)注
0文章
14瀏覽量
2630
發(fā)布評(píng)論請(qǐng)先 登錄
第7章 變量進(jìn)階與點(diǎn)陣LED(7.5 7.6)
第7章 變量進(jìn)階與點(diǎn)陣LED(7.3 7.4)
FZH367 具有獨(dú)立自動(dòng)呼吸功能的LED(12×16)點(diǎn)陣驅(qū)動(dòng)芯片 原廠技術(shù)支持
原廠 FZH365 具有獨(dú)立自動(dòng)呼吸功能的LED(12×12)點(diǎn)陣驅(qū)動(dòng)芯片
智能顯示模塊可以播放動(dòng)畫(huà)嗎?動(dòng)畫(huà)功能怎么實(shí)現(xiàn),在哪可以添加?
Montgomery模乘介紹
音視頻開(kāi)發(fā)全棧解析
SGTools--動(dòng)畫(huà)控件--屏幕實(shí)現(xiàn)動(dòng)畫(huà)顯示 就是這么簡(jiǎn)單
【M-K1HSE開(kāi)發(fā)板免費(fèi)體驗(yàn)】相關(guān)源碼之閱讀和分析1-使用XComponent + Vsync 實(shí)現(xiàn)自定義動(dòng)畫(huà)
分享---儲(chǔ)能UI界面能量流動(dòng)動(dòng)畫(huà)實(shí)現(xiàn)方法
NVIDIA助力樞途科技突破視頻提取具身數(shù)據(jù)技術(shù)鴻溝
基于開(kāi)源鴻蒙的視頻播放開(kāi)發(fā)樣例
【EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】使用和LVGL的anim(簡(jiǎn)易動(dòng)畫(huà))和animimg(圖像動(dòng)畫(huà))控件組合實(shí)現(xiàn)復(fù)雜的動(dòng)畫(huà)功能
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開(kāi)發(fā)板中實(shí)現(xiàn)自定義開(kāi)機(jī)動(dòng)畫(huà)
通過(guò)視頻幀提取及批量取模轉(zhuǎn)換實(shí)現(xiàn)基于STC32的點(diǎn)陣LED動(dòng)畫(huà)播放
評(píng)論