輝度値の読み取りと動画トリミング

15 visualizzazioni (ultimi 30 giorni)
Karen
Karen il 28 Ott 2019
Commentato: Kenta il 29 Ott 2019
動画から輝度値を読み取るということを行っています。読み取ることはできるのですが、動画のサイズが大きいため読み取るのに時間がかかってしまいます。
動画を必要な座標部分だけトリミングする、もしくは必要な座標部分の輝度値のみ読み取るということは可能でしょうか。
現在は以下の方法で輝度値を読み取っています。tempの中身は前2つが座標、3つめがRGB、4つめが時間軸です。
vid=VideoReader(動画名)
for x=フレーム数
temp(:,:,:,x)=read(vid,x)
end

Risposta accettata

Kenta
Kenta il 28 Ott 2019
こんにちは。はい、可能です。
サンプル動画を用いた例を以下に示します。1フレーム目を読み取って、マウスで切り取り範囲を指定します。
もし、特定のピクセルの値でしたら、imcropの行を、I(10,10,:)などとすればよいです。
するとループが開始して、その切り取り範囲のみをtempに格納していきます。
ただ、動画の再生時間が非常に長く読み取りに時間がかかっているのでしたら、この方法は解析時間の短縮化という意味では役立たない可能性もあります。
しかし、tempの(ファイル)サイズは大きく削減されると思います。
clear;clc;close all
vidObj = VideoReader('xylophone.mp4');
I1 = read(vidObj,1);
figure;imshow(I1)
rect=getrect;
for k=1:vidObj.NumFrames
I = read(vidObj,k);
I_cropped = imcrop(I,rect);
temp(:,:,:,k) = I_cropped;
end
figure;imshowpair(I1,temp(:,:,:,10),'montage')
result.png
  2 Commenti
Karen
Karen il 29 Ott 2019
回答ありがとうございます。早い時間で処理することができました。
Kenta
Kenta il 29 Ott 2019
処理もはやくなりましたか、失礼しました。解決してよかったです。

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!