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

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

채택된 답변

Kenta
Kenta 2019년 10월 28일
こんにちは。はい、可能です。
サンプル動画を用いた例を以下に示します。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
Karen
Karen 2019년 10월 29일
回答ありがとうございます。早い時間で処理することができました。
Kenta
Kenta 2019년 10월 29일
処理もはやくなりましたか、失礼しました。解決してよかったです。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!