ben

OMÜ , Bilgisayar Mühendisliği, 13'

25 Ocak 2013 Cuma

Video2frame & frame2video


       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

      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.

Hiç yorum yok: