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

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

Akzeptierte Antwort

Kenta
Kenta am 28 Okt. 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 Kommentare
Karen
Karen am 29 Okt. 2019
回答ありがとうございます。早い時間で処理することができました。
Kenta
Kenta am 29 Okt. 2019
処理もはやくなりましたか、失礼しました。解決してよかったです。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!