読み取った動画を1フレーム分表示させると、トリミングされて引き伸ばされてしまいます。
Mostrar comentarios más antiguos
下記コードを実行すると添付のファイルのように、画像がトリミングされた上に引き伸ばされてしまいます。 別の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)

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