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

1 vue (au cours des 30 derniers jours)
Seiichiro
Seiichiro le 30 Août 2020
Modifié(e) : Seiichiro le 31 Août 2020
一般論としてカメラで撮影した画像やビデオ動画のシミュレーションを行えたらと思っています。
そのために最適なツールボックスを教えていただけたらと思っています。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'

Réponse acceptée

J. Alex Lee
J. Alex Lee le 30 Août 2020
ax.DataAspectRatio = [1,1,1]
also
ax.Projection = "perspective"
and various other "camera"-related properties like: cameraviewangle, cameraposition, cameratarget, cameraupvector
  1 commentaire
Seiichiro
Seiichiro le 31 Août 2020
Modifié(e) : Seiichiro le 31 Août 2020
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by