Bu farkı matlab kullanarak gösterelim:
function kutle_merkezi_hesabi() % resim yükleme RGB = imread('jump_106.jpg'); % resmi gri hale çevirme I = rgb2gray(RGB); % resmi gösterme ve değişikleri koruma figure,imshow(I), hold on; % eşik değeri belirleme [level EM] = graythresh(I); % eşik değeri uygulama bw = im2bw(I, EM - 0.3); % gereksiz görültüyü temizleme bw= medfilt2(bw,[3 3]); bw = bwareaopen(bw, 4); % cisimlerin daha iyi görünmesi için doldurma [B,L] = bwboundaries(bw,'noholes'); % cisimlerin alanını(Area), % Ağırlıklı kütle merkezini(WeightedCentroid), % cismin kütle merkezini(Centroid), % çevresini (Perimeter) % hesapanma cismin_merkezleri= regionprops(L, I, 'Area', 'WeightedCentroid', 'Centroid', 'Perimeter'); % hesaplanan her bir cisim için işlem uygulama for j = 1:length(B) % cisim bilgilerin alma boundary = B{j}; % cismi belirleme plot(boundary(:,2),boundary(:,1),'w', 'LineWidth',2); % cismin kütle merkezini belirleme centroid = cismin_merkezleri(j).Centroid; plot(centroid(1), centroid(2),'r+'); % ağırlıklı kütle merkezini belirleme WeightedCentroid = cismin_merkezleri(j).WeightedCentroid; plot(WeightedCentroid(1), WeightedCentroid(2),'g+',WeightedCentroid(1), WeightedCentroid(2),'go'); end end
Figurede herhangi bir cisme yaklaştırdığınızda ağırlıklı kütle merkezi ile kütle merkezi arasında boşluk olduğu görülecektir: Kodu: kutle_merkezi_hesabi