Matlabでのバーチャルな写真の撮影について

1 回表示 (過去 30 日間)
Seiichiro
Seiichiro 2020 年 8 月 30 日
編集済み: Seiichiro 2020 年 8 月 31 日
一般論としてカメラで撮影した画像やビデオ動画のシミュレーションを行えたらと思っています。
そのために最適なツールボックスを教えていただけたらと思っています。image ,vision関係のツールボックスは使っておりますがそれらの範囲でできるのかどうか。またsimulink animationなどを使いこなせれば大丈夫なのかもしれませんが、simulink 自体になれていなくて、関連するツールボックスもいろいろとありそうなので使いこなせるかどうかと思っています。
手始めにチェッッカーボードをテーブルに置いた状況を想定していろいろな角度で撮った結果を、通常の3D描画で作っていますが、グラフの軸のスケールが実際の縮尺にではなく、Figureのサイズにあわせてフィットしてしまうため、これをカメラから撮影したように対象物のスケールを変えずに描画してjpgファイルに修めたいとおもっています。よい方法があれば教えてくください。現状のプログラムの描画・保存部分を添付します。
% 初期化
figure(1)
clf
set(gcf,'Position',[400 350 1200 720])
% 床
surface('XData',Xf, 'YData',Yf, 'ZData',Zf,...
'EdgeColor','none', 'FaceColor','flat');
% 背景
surface('XData',Xg, 'YData',Yg, 'ZData',Zg-0, ...
'CData',IMG1, 'CDataMapping','direct', ...
'EdgeColor','none', 'FaceColor','texturemap')
% チェッカーボード
surface('XData',Xcb, 'YData',Ycb, 'ZData',Zcb-0, ...
'CData',cbwb, 'CDataMapping','direct', ...
'EdgeColor','none', 'FaceColor','texturemap')
% 軸の設定
axis equal
xlim([0 1000]);ylim([0 1000]);zlim([0 1000]);
xlabel('X');ylabel('Y');zlabel('Z');
grid on
ax=gca;
set(ax,'PositionConstraint','innerposition');%'outerposition');% | 'innerposition'
% カメラの設定
campos(xyzCamePosi)
% ライトの設定
h = light;
az=0;el=45;
lightangle(h,az,el)
shading interp
material default
truesize
% 画像ファイルに保存
if isdir(dir_results),
else
mkdir(dir_results);
end
fn_jpg=sprintf('Img_%d',Np+iip);
print(gcf,[dir_results fn_jpg],'-djpeg'

採用された回答

J. Alex Lee
J. Alex Lee 2020 年 8 月 30 日
ax.DataAspectRatio = [1,1,1]
also
ax.Projection = "perspective"
and various other "camera"-related properties like: cameraviewangle, cameraposition, cameratarget, cameraupvector
  1 件のコメント
Seiichiro
Seiichiro 2020 年 8 月 31 日
編集済み: Seiichiro 2020 年 8 月 31 日
Thank you so much!!
Your advice has improved my figure drastically.
I must keep to improve my code still, but now I realized what I should do.
Thank you so much for your kindness.

サインインしてコメントする。

その他の回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by