I used the ‘text’ function to add the subtitles.
The procedure to add subtitles to the Video:
· Read an video file
· Read each video frame data
· Add text to each frame using the syntax ‘text(x,y,string)’.
· Use imshow to display the image.
· Get the frame from the figure displayed.
MATLAB CODE:
%Input a Video file
obj=mmreader('Poem.avi');
A=read(obj);
j=1;
%Preallocate the frame structure
Frame=struct('cdata',1,'colormap',cell([1 100]));
INPUT VIDEO
%Get the first frame as image
%Add text
%Use 'getframe' to grab the figure
Caption={'How to add Caption/Subtitles';'to video in MATLAB';'GET CODE AT http://angeljohnsy.blogspot.in/';};
I=A(:,:,:,1);
imshow(I),hold on
text(80,100,Caption{1},'Color','w','FontWeight','Bold','FontSize',30);
text(150,200,Caption{2},'Color','w','FontWeight','Bold','FontSize',30);
text(300,480,Caption{3},'Color','r','FontWeight','Bold','FontSize',15);
Frame(j:j+9)=getframe;
j=j+10;
%Get the Second frame as an image i.eA(:,:,:,2);
%Add the Poem title and the author name
Title_={'THE ROAD NOT TAKEN';'-ROBERT FROST'};
I=A(:,:,:,2);
imshow(I), hold on
text(40,100,Title_{1},'Color','k','FontWeight','Bold','FontSize',40);
text(350,550,Title_{2},'Color','k','FontWeight','Bold','FontSize',30);
Frame(j:j+9)=getframe;
j=j+10;
%Create a cell array with the Poem versus
Txt={'TWO roads diverged in a yellow wood,';
'And sorry I could not travel both';
'And be one traveler, long I stood';
'And looked down one as far as I could';
'To where it bent in the undergrowth;';
'Then took the other, as just as fair,';
'And having perhaps the better claim,';
'Because it was grassy and wanted wear;';
'Though as for that the passing there';
'Had worn them really about the same,';
'And both that morning equally lay';
'In leaves no step had trodden black.';
'Oh, I kept the first for another day!';
'Yet knowing how way leads on to way,';
'I doubted if I should ever come back.';
'I shall be telling this with a sigh';
'Somewhere ages and ages hence:';
'Two roads diverged in a wood, and I—';
'I took the one less traveled by,';
'And that has made all the difference.';};
%display the image
%Add the poem lines
%Grab the frame
%There are 20 lines totally
%Add 3 and 2 lines alternatively in each frame
inc=0;
for i=3:size(A,4)
n=mod(i,2);
I=A(:,:,:,i);
imshow(I), hold on
for k=1:2+n
text(80,440+(k*40),Txt{k+inc},'Color','w','FontWeight','Bold','FontSize',25);
end
inc=inc+2+n;
Frame(j:j+19)=getframe;
j=j+20;
end
Create a Video File:
obj=avifile('Road Not Taken.avi','FPS',3);
obj=addframe(obj,Frame);
obj=close(obj);
VIDEO WITH SUBTITLE
Explanation:
text(40,100,Title_{1},'Color','k','FontWeight','Bold','FontSize',40);
This code will add the text ‘THE ROAD NOT TAKEN’ with color font size 40, font weight bold and color black (k).
0 comments:
Post a Comment