2013-08-06 89 views
0

在我有一個martrix甲表示如圖所示的480×640的圖像和尺寸480xN的另一個矩陣index_matrix其中包含一些指數:某些行與下一行中的特定像素在連接某些像素的圖像Matlab的

row_index col_index(es) 
1   210 
2   210 
3   [179,210] 
4   [182,210] 
5   206 
6   206 
. 
. 
. 
480 

第一個col對應於martix A中的行索引,第二個col對應於矩陣A中的col索引,因此index_matrix中的每一行都表示martix A中像素的索引,例如上例中的第一行index_matrix表示位於row_1 col_210中的像素的索引,第三行表示位於row_3 col_179和row_3 col_210中的兩個像素的索引。所以我想只連接martix A的像素和index_matrix中的索引,這樣我將在index_matrix中逐行移動,並將當前行的像素與下一行中的像素連接,依此類推。例如,對上面的例子進行操作:在index_matrix的row_1中,col_index是210,index_matrix中的下一行row_2的col_index是210,所以我想連接像素(1,210)和像素(2,210),然後對於index_matrix中的下一行row_3 col_indexes是179和210,所以我想連接像素(2,210)與(3,179)和(3,210),但像素(1,210)不會連接到它們,因爲它不是直接在它上面的行,依此類推。所以主要想法是將每行中的某些像素與下一行中的某些像素連接起來。所以我問是否有人可以請指教。

+2

你這是什麼意味着連接?你能舉一個你想要的輸出的例子,就數據類型(矩陣,結構,單元陣列)而言,或者原型中的一些條目說明內容? –

+0

martix A是一個圖像,所以我想通過在它們之間畫一條線來連接像素「可能正在使用'line'函數」 – Tak

+0

@TryHard在我以前的評論中是否闡明瞭一些事情?謝謝 – Tak

回答

1

如果我正確理解你的問題,以下內容將幫助你開始。它顯示一個空白圖像,在左上方有一個黑色矩形條(以幫助定位),然後覆蓋連接綠色線和從頂部第1行開始的A中定義的連接。

% example white image with black strip to help with orientation 
nr = 480; 
nc = 640; 
clp = 40; 
arr = [ones(nr,nc-clp) [zeros(nr/2,clp);ones(nr/2,clp)]] *255; 

h=figure; 
imshow(arr) 

% A for this example using random column positions 
A = [[1:nr]' floor((randn(nr,1)-0.5)*50)+300];   

hold on 
plot(A(1,2),1,'ro','MarkerFaceColor','r','MarkerSize',5) % <-- just to show starting row 

for ii=1:size(A,1)-1 
    for jj=1:nnz(A(ii,:))-1 
     for kk = 1:nnz(A(ii+1,:))-1 
      line([A(ii,1+jj) A(ii+1,1+kk)],[A(ii,1) A(ii+1,1)],'color','g','linewidth',1) 
     end 
    end 
end 

爲了您與含retVal的連通性一個單元陣列特定情況下,下面應該工作:

imshow(depth) 

for ii=1:length(retVal)-1 
    for jj=1:nnz(retVal{ii}) 
     for kk = 1:nnz(retVal{ii+1}) 
      line([retVal{ii}(jj) retVal{ii+1}(kk)],[ii ii+1],'color','g','linewidth',1) 
     end 
    end 
end 

下面是輸出:

enter image description here

+0

感謝您的回答!我甚至在我的數據上嘗試過它,但它不起作用。我的數據可以在這裏找到https://www.dropbox.com/s/dst15lm1kbdz32g/input.mat其中retVal是具有索引的矩陣,深度是我要畫的圖像。所以,如果你可以請檢查一下,我會很感激。此外,還感謝 – Tak

+0

,索引martrix只有一列,其中這一列中的每個單元格可能是一個向量,有時它只有一個值,其他時候是其多於一個值,如上面的示例中所示。您的解決方案基於每個單元格有一個值,並且每行有多個列。我希望我已經解釋過,如果您需要澄清,請告訴我。非常感謝! – Tak

+0

我在這裏創建了聊天會話http://chat.stackoverflow.com/rooms/35192/connect-certain-pixels-in-certain-row-with-certain-pixels-in-the-next-row-in -an -i – Tak

相關問題