Ich habe Probleme mit einer Schleife, die die weißen Pixel in einem Stück eines Bildes zählt, und speichert die gesamten weißen Pixel und die y und x Position dieses Stückes im Bild, jedes auf einem eigenen Array.MATLAB - Daten gehen beim Schließen der FOR Schleife verloren
Wenn ich die Werte innerhalb der Schleife drucke, funktioniert es gut, aber rechts nach der Schleife sind die 3 Felder mit Nullen gefüllt.
Kann jemand helfen?
Cod:
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
Sind Sie sicher, dass * * es nur Nullen ist? Wenn die Matrizen groß sind, sehen Sie möglicherweise nur einen Teil davon im Befehlsfenster. Probieren Sie stattdessen 'imagesc (y);' für jede Matrix aus. – gnovice
Dies sollte wie erwartet funktionieren, bitte geben Sie ein [mcve], d. H. Definieren Sie alle Variablen. – m7913d
Wahrscheinlich sollte von 1 anstelle von 0 im echten Matlab-Stil indexiert werden. Es scheint, dass Sie aus einer anderen Programmiersprache kommen. – toshiomagic