![result.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245206/result.png)
輝度値の読み取りと動画トリミング
5 views (last 30 days)
Show older comments
動画から輝度値を読み取るということを行っています。読み取ることはできるのですが、動画のサイズが大きいため読み取るのに時間がかかってしまいます。
動画を必要な座標部分だけトリミングする、もしくは必要な座標部分の輝度値のみ読み取るということは可能でしょうか。
現在は以下の方法で輝度値を読み取っています。tempの中身は前2つが座標、3つめがRGB、4つめが時間軸です。
vid=VideoReader(動画名)
for x=フレーム数
temp(:,:,:,x)=read(vid,x)
end
0 Comments
Accepted Answer
Kenta
on 28 Oct 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](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245206/result.png)
2 Comments
More Answers (0)
See Also
Categories
Find more on イメージ算術 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!