イメージ内の白いピクセルをカウントするループに問題があり、そのピクセルの合計白ピクセルとyとx の位置が格納されています画像内で、それぞれがそれ自身の配列上にある。MATLAB - FORループを閉じるときにデータが失われる
ループ内の値を印刷するとうまくいきますが、ループの後で右の の3つの配列に0が書き込まれます。
誰でも手助けできますか?
コッド:
y = zeros(altura*largura);
x = zeros(altura*largura);
v = zeros(altura*largura);
for j=0:altura-1
for k=0:largura-1
pedaco = f8(j*40+1 : j*40+40, k*40+1 : k*40+40); %binary piece
pedac = im2uint8(pedaco);
totalBrancos = sum(sum(pedac)); %sum white pixels
pos = altura*j+k+1;
y(pos) = j;
x(pos) = k;
v(pos) = totalBrancos;
disp(y(pos)); %works
disp(x(pos)); %works
disp(v(pos)); %works
end
end
disp(y); %all zeros
disp(x); %all zeros
disp(v); %all zeros
あなたは確信していますか?それはすべてゼロですか?行列が大きい場合は、コマンドウィンドウに表示されている行列の一部しか表示されていない可能性があります。代わりに、各行列に対して 'imagesc(y);'を試してください。 – gnovice
これは期待どおりに動作するはずです。[mcve]を指定してください。つまり、すべての変数を定義してください。 – m7913d
おそらく真のmatlab形式で0ではなく1からインデックスする必要があります。あなたは別のプログラミング言語から来ているようです。 – toshiomagic