読み取った動画を1フレーム分表示させると、トリミングされて引き伸ばされてしまいます。
Afficher commentaires plus anciens
下記コードを実行すると添付のファイルのように、画像がトリミングされた上に引き伸ばされてしまいます。 別のMatlabでは問題なく実行できたので設定が原因と思うのですが、どうしても原因がわからなかったので質問します。
vidObj = VideoReader('xylophone.mp4');
vidHeight = vidObj.Height;
vidWidth = vidObj.Width;
s = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),'colormap',[]);
k = 1;
while hasFrame(vidObj)
s(k).cdata = readFrame(vidObj);
k = k+1;
end
image(s(1).cdata)

Réponses (1)
Tohru Kikawada
le 22 Mai 2018
1 vote
image(s(1).cdata) を imshow(s(1).cdata) としてお試しください。アスペクト比が保持されると思います。
7 commentaires
denpika
le 22 Mai 2018
Tohru Kikawada
le 23 Mai 2018
なるほど特定のマシンでのみ起きている問題なのですね。
VideoReader は通常Windowsの標準ビデオコーデックを利用しますが、サードパーティのビデオコーデックなどがインストールされていますと、そちらが利用されて思わぬ結果になる場合があります。もしコーデックがアンインストールできそうでしたらお試しください。 サポートされているビデオ ファイル形式 も参考になるかもしれません。
denpika
le 5 Juin 2018
Tohru Kikawada
le 12 Juin 2018
ソフトウェアOpenGLへの切り替えが起きていますが、今回の問題には直結しないように見えます。"ほかのMatlab"では正しく動作されているということですが、うまく動作しているMATLABと動作していないMATLABのバージョンが異なりますか。下記のコマンドで調べることができます。
>> ver
denpika
le 13 Juin 2018
denpika
le 18 Juin 2018
Tohru Kikawada
le 2 Juil 2018
情報ありがとうございます。ハードウェアアクセラレーションの問題だったのですね。
参考になりました。
Catégories
En savoir plus sur オーディオとビデオ dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
