Video birden fazla framelerin bir araya gelerek oluşturulur. Video işleme aslında görüntü işlemedir. Videolarda, saniyede 25 kare oynatarak gözün kare geçişini farketmesini engeller. Bu nedenle video işleme üzerine çalışanlar öncelikle videoyu framelere yanı resimler boler ve sırası ile bu resımleri işleyerek istenileni yapar ve değişiklik yapılan framelerı tekrar video halıne getirerek işlenmiş video olarak sunarlar. Bu yazıda videoya ait frameleri alıp kaydetme daha sonrada bu kaydedilen framelerden video oluşturma aşamalarını anlatmaya çalıscağım.
Videodan frame alma;
video= mmreader('kareVideo.avi');
i=0;
for ii=1:video.NumberOfFrames
Frame = read(video, ii);
datastring=num2str(i,'frame_%05d.png');
imwrite(Frame,datastring);
i=i+1;
end
i=0;
for ii=1:video.NumberOfFrames
Frame = read(video, ii);
datastring=num2str(i,'frame_%05d.png');
imwrite(Frame,datastring);
i=i+1;
end
mmreader fonksiyonu video dosyasını okur, NumberOfFrames ise bu videoda kac tane frame olduğu bilgisini verir. Bu bilgi sayesinde for döngüsüyle içerdiği framelere ulaşabiliriz.readmethodu o videodaki ii indisine sahip frami getirir. Aldığımız bu frame’i kaydetmek istersek daha önceki yazıda anlatılan isimlendirme yöntemiyle kaydedebiliriz.
Frame’lerden video oluşturma;
aviobj = avifile(videoname,'compression','None');
aviobj.Quality = 80;
aviobj.COMPRESSION ='None';
dbnm='klasor/';
d=dir([dbnm,’.*png’]);
[x,y]=size(d);
for i =1:x
yol=strcat(dbnm, d(i).name);
a = imread(yol);
aviobj = addframe(aviobj,a);
end
aviobj=close(aviobj);
avifile bos bir avi uzantılıdosya oluşturur. Diğer işlemler daha önce anlatılan dosyadan resim okuma işlemleridir. addframe işlemi oluşturduğumuz bos video dosyasına gelen framei yükler. Frame yükleme işlemi bittikten sonra close ile avi dosyasını kapatmamız gerekmektedir. Oluşturduğumuz avi dosyasını Matlab’ ın gösterdiği dosya yoluna kaydeder.
Frame’lerden video oluşturma;
aviobj = avifile(videoname,'compression','None');
aviobj.Quality = 80;
aviobj.COMPRESSION ='None';
dbnm='klasor/';
d=dir([dbnm,’.*png’]);
[x,y]=size(d);
for i =1:x
yol=strcat(dbnm, d(i).name);
a = imread(yol);
aviobj = addframe(aviobj,a);
end
aviobj=close(aviobj);
avifile bos bir avi uzantılıdosya oluşturur. Diğer işlemler daha önce anlatılan dosyadan resim okuma işlemleridir. addframe işlemi oluşturduğumuz bos video dosyasına gelen framei yükler. Frame yükleme işlemi bittikten sonra close ile avi dosyasını kapatmamız gerekmektedir. Oluşturduğumuz avi dosyasını Matlab’ ın gösterdiği dosya yoluna kaydeder.
Hiç yorum yok:
Yorum Gönder