91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過視頻幀提取及批量取模轉(zhuǎn)換實(shí)現(xiàn)基于STC32的點(diǎn)陣LED動(dòng)畫播放

jf_07365693 ? 來源:jf_07365693 ? 作者:jf_07365693 ? 2024-06-27 02:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

image.png

項(xiàng)目摘要

通過視頻幀圖片提取,圖片批量裁剪,轉(zhuǎn)換為BMP文件并取模,獲得顯示屏代碼,基于STC32單片機(jī),在8x8點(diǎn)陣LED模塊上實(shí)現(xiàn)動(dòng)畫播放。

項(xiàng)目?jī)?nèi)容

動(dòng)態(tài)圖片顯示

  1. 將目標(biāo)動(dòng)圖或視頻提取為幀圖片,可通過 MATLAB 程序?qū)崿F(xiàn);
  2. 將幀圖片裁剪為目標(biāo)顯示屏的像素比例,如 0.96 英寸 OLED 顯示屏的像素為 128x64, 則需將幀圖片按照 2:1 的寬高比進(jìn)行裁剪、對(duì)于單個(gè) 8x8 點(diǎn)陣則需按照 1:1 進(jìn)行裁剪,注意選擇目標(biāo)裁剪區(qū)域;
  3. **將裁剪過的幀圖片轉(zhuǎn)化為灰度圖像(以便后面進(jìn)行二值化),之后進(jìn)行像素縮小操作,將圖片調(diào)整至目標(biāo)顯示屏的像素分辨率,最后進(jìn)行二值化處理,并將處理結(jié)果存儲(chǔ)為 ***.bmp 格式文件;
  4. **將批量保存的 BMP 文件按照幀順序重命名為 **1,2,3... ,之后使用[批量取模工具]生成相應(yīng)的 16 進(jìn)制代碼,復(fù)制到程序中即可。

詳見: [嗶哩嗶哩 bilibili] .

**或者將幀圖片像素縮小至目標(biāo)顯示屏像素,保持彩色狀態(tài),存儲(chǔ)為 BMP 格式,使用批量取模工具,勾選 **轉(zhuǎn)換彩圖,調(diào)整閾值至適當(dāng)值(如66%),即可直接生成對(duì)應(yīng)代碼。

詳見附錄。該項(xiàng)目的STC代碼見附件。

附錄

圖片取模

  1. **提取視頻或 GIF 動(dòng)圖的幀為圖片,可使用 **MATLAB[GIF Movie Gear] 軟件
  2. **使用 **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 文件。

  1. **將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'); %寫入圖片
    I=[];
end

MATLAB重命名文件的排序問題

**可使用 **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)資料見附件。*附件:STC_Flash_MAX7219.zip

轉(zhuǎn)載請(qǐng)注明來源,謝謝!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    243

    文章

    24594

    瀏覽量

    690797
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45494

    瀏覽量

    670260
  • 點(diǎn)陣
    +關(guān)注

    關(guān)注

    6

    文章

    194

    瀏覽量

    73412
  • stc32
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    2629
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    第7章 變量進(jìn)階與點(diǎn)陣LED(7.5 7.6)

    7.5?點(diǎn)陣動(dòng)畫顯示 點(diǎn)陣動(dòng)畫顯示,說到底就是對(duì)多張圖片分別進(jìn)行,使用程序算法巧妙的切換
    的頭像 發(fā)表于 12-17 16:51 ?3423次閱讀
    第7章 變量進(jìn)階與<b class='flag-5'>點(diǎn)陣</b><b class='flag-5'>LED</b>(7.5 7.6)

    第7章 變量進(jìn)階與點(diǎn)陣LED(7.3 7.4)

    7.3點(diǎn)陣的初步認(rèn)識(shí) 點(diǎn)陣LED顯示屏作為一種現(xiàn)代電子媒體,具有靈活的顯示面積(可任意分割和拼裝)、高亮度、長(zhǎng)壽命、數(shù)字化、實(shí)時(shí)性等特點(diǎn),應(yīng)用非常廣泛。 通過學(xué)習(xí)
    的頭像 發(fā)表于 12-11 14:56 ?667次閱讀
    第7章 變量進(jìn)階與<b class='flag-5'>點(diǎn)陣</b><b class='flag-5'>LED</b>(7.3 7.4)

    FZH367 具有獨(dú)立自動(dòng)呼吸功能的LED(12×16)點(diǎn)陣驅(qū)動(dòng)芯片 原廠技術(shù)支持

    概述 型號(hào):FZH367FZH367是一種具有獨(dú)立自動(dòng)呼吸功能的LED(12×16)點(diǎn)陣驅(qū)動(dòng)芯片。芯片通過I2C協(xié)議控制每個(gè)LED實(shí)現(xiàn) 3
    發(fā)表于 11-18 09:18

    原廠 FZH365 具有獨(dú)立自動(dòng)呼吸功能的LED(12×12)點(diǎn)陣驅(qū)動(dòng)芯片

    是一種具有獨(dú)立自動(dòng)呼吸功能的LED(12×12)點(diǎn)陣驅(qū)動(dòng)芯片。芯片通過I2C協(xié)議控制每個(gè) LED實(shí)現(xiàn) 3 種自動(dòng)呼吸模式及PMW模式的切換
    發(fā)表于 11-17 09:38

    智能顯示模塊可以播放動(dòng)畫嗎?動(dòng)畫功能怎么實(shí)現(xiàn),在哪可以添加?

    智能顯示模塊可以播放動(dòng)畫嗎?動(dòng)畫功能怎么實(shí)現(xiàn),在哪可以添加?
    發(fā)表于 11-08 08:57

    Montgomery乘介紹

    的整數(shù),即 ; ,通常 , 是rn的逆,即 ; 。 計(jì)算 的算法: 因?yàn)?所以 , 都可以通過簡(jiǎn)單的移位操作實(shí)現(xiàn),從而消去了最復(fù)雜的除法運(yùn)算。由于Montgomery 算法計(jì)算的
    發(fā)表于 10-22 07:35

    視頻開發(fā)全棧解析

    Media Kit 讓開發(fā)者可以調(diào)用系統(tǒng)的音視頻能力,涵蓋播放、錄制、錄屏、元數(shù)據(jù)提取與轉(zhuǎn)碼六大核心功能模塊,支撐系統(tǒng)應(yīng)用與第三方應(yīng)用在視頻播放
    的頭像 發(fā)表于 09-18 14:42 ?842次閱讀
    音<b class='flag-5'>視頻</b>開發(fā)全棧解析

    SGTools--動(dòng)畫控件--屏幕實(shí)現(xiàn)動(dòng)畫顯示 就是這么簡(jiǎn)單

    詳細(xì)步驟可以觀看視頻, 實(shí)現(xiàn)動(dòng)畫很簡(jiǎn)單,提前準(zhǔn)備好gif文件和一個(gè)張背景圖 使用SGTools工具,就可以制作動(dòng)畫界面啦 視頻中屏幕型號(hào)是
    發(fā)表于 09-16 10:29

    【M-K1HSE開發(fā)板免費(fèi)體驗(yàn)】相關(guān)源碼之閱讀和分析1-使用XComponent + Vsync 實(shí)現(xiàn)自定義動(dòng)畫

    事件,確保動(dòng)畫幀率與屏幕刷新率同步,避免畫面撕裂或卡頓。 自定義動(dòng)畫流程 : Native 層繪制 :通過 OpenGL ES 在 XComponent 的獨(dú)立線程中渲染每一
    發(fā)表于 09-03 16:05

    分享---儲(chǔ)能UI界面能量流動(dòng)動(dòng)畫實(shí)現(xiàn)方法

    本文分享 工商業(yè)儲(chǔ)能設(shè)備的UI界面中如何實(shí)現(xiàn) 能量流動(dòng)的動(dòng)畫效果。 本例子效果 基于拓普微工業(yè)級(jí) 7寸屏電容串口屏(HMT070ETA-D型號(hào))實(shí)現(xiàn): 第1步:建立工程和頁面 使用SGTools新建
    發(fā)表于 09-02 18:22

    NVIDIA助力樞途科技突破視頻提取具身數(shù)據(jù)技術(shù)鴻溝

    技術(shù),加速了從互聯(lián)網(wǎng)視頻提取具身智能模型訓(xùn)練數(shù)據(jù),實(shí)現(xiàn)了從視頻三維大世界重建、任務(wù)語義信息理解、物體細(xì)節(jié)及軌跡提取、多模態(tài)數(shù)據(jù)采集、具身智能
    的頭像 發(fā)表于 08-30 16:11 ?1823次閱讀

    基于開源鴻蒙的視頻播放開發(fā)樣例

    在開源鴻蒙生態(tài)建設(shè)中,多媒體能力是構(gòu)建豐富用戶體驗(yàn)的核心要素。本開發(fā)樣例針對(duì)視頻播放場(chǎng)景,聚焦開源鴻蒙原生媒體框架,通過Video組件實(shí)現(xiàn)視頻
    的頭像 發(fā)表于 08-19 10:41 ?1605次閱讀
    基于開源鴻蒙的<b class='flag-5'>視頻</b><b class='flag-5'>播放</b>開發(fā)樣例

    【EASY EAI Orin Nano開發(fā)板試用體驗(yàn)】使用和LVGL的anim(簡(jiǎn)易動(dòng)畫)和animimg(圖像動(dòng)畫)控件組合實(shí)現(xiàn)復(fù)雜的動(dòng)畫功能

    中也是建議使用者一個(gè)anim變量只執(zhí)行一個(gè)動(dòng)作(平移/縮放/旋轉(zhuǎn)),想要實(shí)現(xiàn)多個(gè)動(dòng)畫并行播放(比如斜向平移,即同時(shí)改變X軸和Y軸坐標(biāo),或者在平移過程中旋轉(zhuǎn)obj)的話,官方是建議使用者定義多個(gè)anim
    發(fā)表于 08-09 21:37

    ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板中實(shí)現(xiàn)自定義開機(jī)動(dòng)畫

    在嵌入式Linux系統(tǒng)的啟動(dòng)過程中,默認(rèn)的文本啟動(dòng)日志往往缺乏良好的用戶體驗(yàn)。為了提升設(shè)備啟動(dòng)時(shí)的視覺效果,可以通過psplash工具實(shí)現(xiàn)圖形化開機(jī)動(dòng)畫,支持靜態(tài)logo或動(dòng)態(tài)動(dòng)畫顯示
    的頭像 發(fā)表于 07-25 09:37 ?1516次閱讀
    ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板中<b class='flag-5'>實(shí)現(xiàn)</b>自定義開機(jī)<b class='flag-5'>動(dòng)畫</b>

    【EASY EAI Orin Nano開發(fā)板試用體驗(yàn)】使用Linux posix文件讀取接口和LVGL的animimg(圖像動(dòng)畫)控件實(shí)現(xiàn)動(dòng)畫播放以及

    手機(jī)系統(tǒng)界面那種動(dòng)態(tài)的背景圖上面,通過將預(yù)先加載到RAM中的多個(gè)圖像緩存按照一定次序播放實(shí)現(xiàn),并且可通過api進(jìn)行停止和重新開始播放,在
    發(fā)表于 07-22 00:34