Matlab中的3D RGB图绘制

3

我有一个3行4列的矩阵,其中每一列都包含一个特定颜色的R、G和B三个部分。我需要将每个组件作为单个点在3D图中绘制出来,并如果可能,使用相应的RGB组件的颜色对每个点进行着色。

我已经尝试使用plot3函数,但它只会画一条连续的线,并且只有一种颜色。

例如,这是我的矩阵:

centroids = 

47    85   104   126   
37    66    86   103   
36    55    71    90

这里的(47,37,36)是第一个点的RGB坐标,因此我需要在RGB空间中将其绘制为单个点,并使用特定颜色。我的想法是使用以下for循环:

for i = 1:4
    plot3( centroids(1,i),centroids(2,i),centroids(3,i),'Color',centroids(:,i))
end

但是它给我一个错误,如果我不尝试改变颜色,它只会画出一条线,并且颜色相同。是否有一种方法可以将矩阵的每个列作为独立点绘制,并使用RGB分量的颜色?

1个回答

2
你应该使用 scatter3 函数。以下是一个使用你的数据的示例,假设数据包含在名为 A 的数组中:
scatter3(A(1,:), A(2,:), A(3,:), 50, (A/255)', 'filled')

并且结果如下图所示: 结果 祝好,

正是我需要的,谢谢!有办法让点变得更大吗?我在Matlab编程方面还很新,对我的不经验感到抱歉! - Marta Sampietro
当然,要改变标记的大小,您可以改变scatter3的第四个参数,这更或多或少是标记在像素中的面积。有关更多详细信息,请参阅文档。 - Ratbert
太好了!非常感谢你! - Marta Sampietro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接