Matlab實(shí)現(xiàn)將圖像序列合并為視頻的方法詳解
MATLAB是一種高性能語言,用于操縱矩陣、執(zhí)行技術(shù)計(jì)算、繪圖等。它代表矩陣實(shí)驗(yàn)室。借助這個(gè)軟件,我們可以從圖像中創(chuàng)建視頻。
參考代碼一
以下代碼適合序列圖像名稱為1、2、3、4、5等名稱的圖片。
videoname='VBRPCA_qj'; % 待生成的視頻文件名
myfilepath='C:\Users\xiaomao\Desktop\ys_hb\' % 待合成的圖片存放路徑,需根據(jù)實(shí)際修改
WriterObj = VideoWriter([videoname,'.avi']); % 設(shè)置待合成的視頻(不僅限于avi格式)名稱
WriterObj.FrameRate = 10; % 設(shè)置每秒幀數(shù)
open(WriterObj);
filepath = dir([myfilepath,'*.jpg']); % 獲取路徑myfilepath文件夾中所有png的文件結(jié)構(gòu)體
for k = 1:length(filepath)
frame=imread([filepath(k).folder,'\', strcat(num2str(k-1), '.jpg')]); % 遍歷讀取圖像,放在變量frame中
writeVideo(WriterObj,frame); % 將frame放到變量WriterObj中
end
close(WriterObj);
fprintf([videoname,'.avi','制作成功\n'])參考代碼二
以下代碼適合圖片名稱為,001、002、003等名稱的圖片。
videoname='VBRPCA_qj'; % 待生成的視頻文件名
myfilepath='D:\test\' % 待合成的圖片存放路徑,需根據(jù)實(shí)際修改
WriterObj = VideoWriter([videoname,'.avi']); % 設(shè)置待合成的視頻(不僅限于avi格式)名稱
WriterObj.FrameRate = 10; % 設(shè)置每秒幀數(shù)
open(WriterObj);
filepath = dir([myfilepath,'*.png']); % 獲取路徑myfilepath文件夾中所有png的文件結(jié)構(gòu)體
for k = 1:length(filepath)
frame=imread([filepath(k).folder,'\',filepath(k).name]); % 遍歷讀取圖像,放在變量frame中
writeVideo(WriterObj,frame); % 將frame放到變量WriterObj中
end
close(WriterObj);
fprintf([videoname,'.avi','制作成功\n'])上面兩段代碼的主要區(qū)別就是for循環(huán)里面的文件路徑的組織方式不同。
參考代碼三
MATLAB提供了一個(gè)專門的函數(shù)來建立元胞數(shù)組,即cell函數(shù)。cell函數(shù)用于創(chuàng)建一維、二維或者多維空元胞數(shù)組。
photos = cell(3,1);
photos{1} = imread('image1.png');
photos{2} = imread('image2.png');
photos{3} = imread('image3.png');
% 創(chuàng)建每秒1幀的視頻文件
videofile = VideoWriter('output.mp4','MPEG-4');
videofile.FrameRate = 1;
% 設(shè)置每個(gè)圖像的秒數(shù)
secperImg = [2 3 4];
% 打開視頻文件
open(videofile);
% 將幀寫入視頻
for i=1:length(photos)
% convert the image to a frame
frame = im2frame(photos{i});
for v=1:secperImg(i)
writeVideo(videofile, frame);
end
end
% 關(guān)閉視頻文件
close(videofile);參考代碼四,視頻讀取
fileName = 'MVI_1264_clip.avi\';
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;% 幀的總數(shù)
for k = 1 : numFrames% 讀取數(shù)據(jù)
frame = read(obj,k);
imshow(frame);%顯示幀
imwrite(frame,strcat(num2str(k),\'.jpg\'),\'jpg\');% 保存幀
end如果是mat格式文件,load加載即可。
到此這篇關(guān)于Matlab實(shí)現(xiàn)將圖像序列合并為視頻的方法詳解的文章就介紹到這了,更多相關(guān)Matlab圖像序列合并為視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)新生入學(xué)登記系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)新生入學(xué)登記系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
詳解C/C++ Linux出錯(cuò)處理函數(shù)(strerror與perror)的使用
我們知道,系統(tǒng)函數(shù)調(diào)用不能保證每次都成功,必須進(jìn)行出錯(cuò)處理,這樣一方面可以保證程序邏輯正常,另一方面可以迅速得到故障信息。本文主要為大家介紹兩個(gè)出錯(cuò)處理函數(shù)(strerror、perror)的使用,需要的可以參考一下2023-01-01
C/C++實(shí)現(xiàn)MD5校驗(yàn)學(xué)習(xí)
MD5全程Message-Digest?Algorithm?5,即消息摘要算法第五版,是屬于hash算法的一種,本文主要介紹了如何在C++中實(shí)現(xiàn)MD5校驗(yàn),需要的可以了解下2024-03-03
C++設(shè)計(jì)類不能被繼承的方法實(shí)例講解
在Java 中定義了關(guān)鍵字final,被final修飾的類不能被繼承,C++中如何實(shí)現(xiàn),下面我們來看一個(gè)例子2013-12-12

