イメージ内のピクセルの輝度差に基づいて隣接リストを作成しています。 次のようにMatlabのコードスニペットは次のとおりです。matlabの入れ子になったforループを避けるには?
m=1;
len = size(cur_label, 1);
for j=1:len
for k=1:len
if(k~=j) % avoiding diagonal elements
intensity_diff = abs(indx_intensity(j)-indx_intensity(k)); %intensity defference of two pixels.
if intensity_diff<=10 % difference thresholded by 10
adj_list(m, 1) = j; % storing the vertices of the edge
adj_list(m, 2) = k;
m = m+1;
end
end
end
end
y = sparse(adj_list(:,1),adj_list(:,2),1); % creating a sparse matrix from the adjacency list
は、どのように私はループのためにこれらの厄介な入れ子のを避けることができますか?画像サイズが大きければ、それは災害と同様に機能します。もし誰かが解決策を持っていれば、私にとって大きな助けになるでしょう。 よろしくお願いいたします Ratna
やあ、と歓迎は、......この種の問題のための最初のスタンダールanwserはhttp://ch.mathworks.com/([ベクトル化]になりますhelp/matlab/matlab_prog/vectorization.html)(いくつかの[トリックス](http://www-h.eng.cam.ac.uk/help/tpl/programs/Matlab/tricks.html)) –
'cur_label'と' indx_intensity'は何ですか? 'len'のサイズが' len'の正方形のイメージですか? – Ratbert
cur_labelは、画像から1つのクラスタであるベクトルです(120x1とは、隣接行列に対して120ピクセルまたは頂点があることを意味します)。 indx_intensityは、それらのピクセルのグレー値(120グレー値)です。 120の頂点があるので、隣接行列は120x120のサイズになります。 –