我想绘制一个带有纹理贴图的表面,但条件不是“理想”的。
首先让我们解释一下我有什么。
我有一组点(~7000),它们是网格中的图像坐标。这点不定义完美的正方形。 它不是网格。为了这个问题,让我们假设我们有 9 分。让我们用图像来说明我们所拥有的:
X=[310,270,330,430,410,400,480,500,520]
Y=[300,400,500,300,400,500,300,400,500]
假设我们可以得到网格的“结构”,所以
size1=3;
size2=3;
points=zeros(size1,size2,2)
X=[310,270,330;
430,410,400;
480,500,520]
Y=[300,400,500;
300,400,500;
300,400,500]
points(:,:,1)=X;
points(:,:,2)=Y;
现在假设我们有一个第三维度,Z。
编辑:如果信息忘记添加一块。我对图像中的点进行三角测量并获得 3D 对应关系,因此当显示在表面中时,它们没有图像的 X 和 Y 坐标,为了简化给定数据,可以说 X=X/2 Y=Y /3
我们有:
points=zeros(size1,size2,3)
Z=[300,330,340;
300,310,330;
290,300,300]
surf(points(:,:,1)/2,points(:,:,2)/3,points(:,:,3))
我想要的是用图像纹理绘制 3D 表面。每个元素都应具有第一张图像中的纹理块。
这需要适用于庞大的数据表。我并不特别需要它很快。
相关帖子(但我有一个网格网格作为初始点集):2D 网格的纹理贴图
PD:如果需要,我可以发布原始图像+真实数据,之所以发布这个是因为我认为使用小数据更容易。