画像のトリミングと動画作成

조회 수: 6 (최근 30일)
Kenji Kawano
Kenji Kawano 2020년 3월 2일
편집: Shunichi Kusano 2020년 3월 2일
matlab 2009版で画像のトリミングを1画素単位でずらしAVIファイルを作成したいのですが、matlabのバージョンが対応しておらずimcrop等のコマンドが使えず困っています
どなたかやり方を教えて頂けませんでしょうか?
宜しくお願いいたします

채택된 답변

Shunichi Kusano
Shunichi Kusano 2020년 3월 2일
편집: Shunichi Kusano 2020년 3월 2일
ちょっと調べてみましたが、imcrop関数自体はR2006a より前に導入とありますので、image processing toolboxを未導入ということなんでしょうか。
トリミングは、関数ベースでなければインデックスを直接指定して、画像の一部を抜き出して新たな数値配列を作る、という流れでも実現できます。例えばx1:x2, y1:y2の範囲をくりぬきたいなら、
subimg = img(y1:y2, x1:x2, :);
で大丈夫です。これを1画素単位でずらしながら、ということでしたらforループを使って
for yi = 1:maxshift_y
for xi = 1:maxshift_x % x,yの順番は動画順に適宜変える
subimg = img(y1+yi:y2+yi, x1+xi:x2+xi, :); % クロップ
% 外部出力のコマンドを挿入
end
end
という形で実行できます。
2009時点ではvideowriter関数がないので、AVIに保存するのも問題になるかと思います。代替案としては
①imwrite関数で一コマずつ保存してサードパーティ製のソフトで連結してAVIにする
②imwirteでGIFファイルとして書き出す(2009でGIF化までできるかは未確認)
でしょうか。いろいろ不便なので可能でしたら最新版へのアップデートがベストです。
以上、参考になりましたら幸いです。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 イメージ에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!