Fehler: In einer Zuweisung A (I) = B muss die Anzahl der Elemente in B und I gleich sein.Fehler beim Berechnen des Schwerpunkts in Matlab
Fehler in ==> Test bei 22 Schwerpunkt (i) = k (i) .Centroid;
test.m
I=imread('1_1.jpg');
I=rgb2gray(I);
I2 = Thresholding(I);
cc = bwconncomp(I2,8);
n = cc.NumObjects;
Area = zeros(n,1);
Centroid = zeros(n,1);
Perimeter = zeros(n,1);
MajorAxis = zeros(n,1);
MinorAxis = zeros(n,1);
k = regionprops(cc, 'Area','Centroid','Perimeter','MajorAxisLength', 'MinorAxisLength');
for i=1:n
Area(i) = k(i).Area;
Centroid(i)=k(i).Centroid;
Perimeter(i) = k(i).Perimeter;
MajorAxis(i) = k(i).MajorAxisLength(i);
MinorAxis(i) = k(i).MinorAxisLength(i);
end
handdata(1,1) = mean(Area);
handdata(2,1) = mean(Centroid);
handdata(3,1) = mean(Perimeter);
handdata(4,1) = mean(MajorAxis);
handdata(5,1) = mean(MinorAxis);
Thresholding.m
function im = Thresholding(I);
[r,c] = size(I);
im = zeros(r,c);
for i=1:r
for j=1:c
if I(i,j)>105
im(i,j)=1;
end
end
end
im = bwareaopen(im,5);
im = imfill(im, 'holes');
end
Ich sollte handdata (2,1) = Mittelwert (Centroid) in => ?? –
sehe meine aktualisierte Antwort – drorco
Es scheint kein Fehler. Aber es gibt mir auch keine Antwort. Der ausgegebene Wert ist NaN. Wie kann ich es lösen? –