我有一个表示480x640图像的martrix A和另一个大小为480xN的矩阵index_matrix,它包含一些索引,如下所示:
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)将不连接到它们,因为它不是直接在它上面的行,依此类推。因此,主要思想是将每行中的某些像素与下一行中的某些像素相连。所以我在问是否有人可以提出建议。
答案 0 :(得分:1)
如果我正确理解了您的问题,以下内容将帮助您入门。它显示一个空白图像,左上角有一个黑色矩形条(有助于方向),然后覆盖连接绿线和A
中从顶部第1行开始定义的连接。
% 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
这是输出: