2013-07-21 159 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]);