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

3 Ansichten (letzte 30 Tage)
Kenji Kawano
Kenji Kawano am 2 Mär. 2020
Bearbeitet: Shunichi Kusano am 2 Mär. 2020
matlab 2009版で画像のトリミングを1画素単位でずらしAVIファイルを作成したいのですが、matlabのバージョンが対応しておらずimcrop等のコマンドが使えず困っています
どなたかやり方を教えて頂けませんでしょうか?
宜しくお願いいたします

Akzeptierte Antwort

Shunichi Kusano
Shunichi Kusano am 2 Mär. 2020
Bearbeitet: Shunichi Kusano am 2 Mär. 2020
ちょっと調べてみましたが、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化までできるかは未確認)
でしょうか。いろいろ不便なので可能でしたら最新版へのアップデートがベストです。
以上、参考になりましたら幸いです。

Weitere Antworten (0)

Kategorien

Mehr zu イメージ finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!