ディスクからテクスチャとしてロードされた画像と、対応する深さを持つ同じサイズの行列dがあります。
surf
画像を3Dモデルとして表示するにはどうすればよいですか?単に取る
surf(depthMatrix, img);
以来、良い結果は得られません
- カメラはxy平面からz方向に見えません
- かなり黒く見えます
- を使用して表示すると、深度マトリックスは実際には滑らかになっていますが、それほど滑らかには見えません。
imshow(depthMatrix, []);
テクスチャ マッピングを使用して、次のようにイメージをサーフェスに表示できます。
surf(depthMatrix,img,... %# depthMatrix is z data, img is an image
'FaceColor','texturemap',... %# Use texture mapping
'EdgeColor','none'); %# Turn off edge coloring
そして、あなたの3つのポイントに対処するには:
Figureのボタンを押すと、マウスでカメラの角度を調整できます。これにより、インタラクティブな 3D 回転がオンになります。関数ROTATE3Dを使用してインタラクティブな回転をオンにすることも、関数VIEWを使用してマウスなしでカメラ ビューを変更することもできます。
エッジがデフォルトで黒い線として描画され、おそらく多くのエッジがあったため、プロットが黒く見えました。
軸のスケーリングと制限を調整して、サーフェスをより滑らかに見せることができます。たとえば、axis equal
3 つの軸すべてでデータ単位が同じになるため、他の 2 つの軸の範囲が数百に及ぶため、z 軸 (0 から 25 の範囲) は大幅に平坦化されます。または、 SURFの呼び出しで、これらの軸の値に使用する x および y データを指定できます。これにより、最終的に、これらの軸と z 軸の間の相対的なスケーリングをより適切に調整することができます。