2013-07-21 161 views
0

嗨我想绘制一张图片。如何绘制/绘制多个矩阵

我有三个矩阵:

基质A: X坐标

矩阵B: Y坐标

矩阵C: 图像灰度

例如:

A = [1, 1;  B = [1, 2;  C = [1, 2; 
    2, 2]   1, 2]   3, 4] 

我将在X(1),Y(1)处绘制一个值为C(1)的点。 值1在(1,1) 值2画出在(1,2) 值3绘制在(2,1) 值4绘制在(2,2)

绘制有一个函数,我可以用来绘制这个,还是我必须实现这个?任何建议如何实施这将不胜感激。谢谢。

+0

现在是一对一映射,即每个(x,y)对只有一个C值吗?更具体地说,X和Y矩阵是什么样的? – voxeloctree

+0

它们都是具有完全相同大小的2D矩阵。我不确定你的意思是一对一地图。所以C(1)值用于X(1),Y(1)。 C(2)值用于X(2),Y(2)等等。 –

+0

您可以在线阅读更多关于它们的信息,查看内射函数。抱歉让你困惑,我很困惑。但是你用你的样本A,B,C矩阵使它更容易理解。 – voxeloctree

回答

0

这是一个完整的图像吗? A,B和C是一维的,对吗?如果是这样,您可以在相应的索引处制作Matrix C值的二维数组,并将其转换为图像并显示图像。

img = zeros(max(max(B)),max(max(A))); %initialize the new matrix 
for i = 1:numel(C)      %for each element in C 
     img(B(i),A(i)) = C(i);   %fill the matrix one element at a time 
end 
img = mat2gray(img);     %optional. More information in edit 
imshow(img);       %display the image 

这假设最小索引值是1,如果是0,而不是,你就必须加1,所有的指标。

我的matlab有点生疏,但应该工作。

编辑:是否有任何理由,他们是二维数组开始?无论如何,我已经更新了我的答案,无论是哪种情况。

edit2:mat2gray会将您的值缩放到0和1之间。如果您的值已经是灰度,那么这是不必要的。如果您的值在另一个比例范围内,但不一定包含最小值和最大值,则可以指定最小值和最大值。例如,如果您的范围是0到255,请使用mat2gray(img,[0,255]);