Matlabでのバーチャルな写真の撮影について
1 次查看(过去 30 天)
显示 更早的评论
一般論としてカメラで撮影した画像やビデオ動画のシミュレーションを行えたらと思っています。
そのために最適なツールボックスを教えていただけたらと思っています。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'
0 个评论
采纳的回答
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!