MATLAB: Calculer le barycentre d’une région avec plusieurs pixel de valeur différente

barycentrecentrecentre de gravitégravitéobjetpixelregion

Bonjour à tous !
Je post ce message car j'ai besoin de votre aide.
Rentrons dans le vif du sujet : j'ai une région (qui s'assimile à une particule) qui contient plusieurs pixel. Chaque pixel a un système de coordonée i et j ainsi que la valeur de son intensité (en niveau de gris). Selon la région dans laquelle je me trouve, j'ai un nombre de pixel qui peut varier.
L'objectif de mon travail est de calculer le barycentre de chacune de ces régions en fonction, donc, de l'intensité des pixels qui les composent.
J'ai toutes les données nécéssaires pour calculer le barycentre d'une région c'est à dire : les coordonnées ainsi que les valeurs de chaque pixel. En fait j'ai fait le plus compliqué..
Le résultat que je cherche est donc sous la forme : i=fonction(i,j,v) j=fonction(i,j,v)
avec i, j et v des vecteurs (qui peuvent également avoir une taille 1×1 si ma région est composé d'uniquement 1 pixel) contenant les coordonées ainsi que les valeurs de chacun des pixel.
J'espere que vous pourrez m'aider et vous remercie d'avance. Amicalement.

Best Answer

The barycentre is simply the mean of the point coordinates weighted by their intensity thus:
[i, j] = barycentre(i, j, v)
%the (:) is just to make sure the inputs to mean are vectors with the same shape. it may not be needed
i = sum(i(:) .* v(:)) / sum(v(:));
j = sum(j(:) .* v(:)) / sum(v(:));
end
Le barycentre is simplement la moyenne des coordinates ponderees par l'intensite