calculer le barycentre d'une région avec plusieurs pixel de valeur différente

25 ビュー (過去 30 日間)
Hidir ABAY
Hidir ABAY 2016 年 5 月 23 日
コメント済み: Hidir ABAY 2016 年 5 月 23 日
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 1x1 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.
  1 件のコメント
Guillaume
Guillaume 2016 年 5 月 23 日
Quick summary of the above post: The OP is asking how to calculate the centre of mass of a pixel region. He's already found the pixels location and intensity.

サインインしてコメントする。

採用された回答

Guillaume
Guillaume 2016 年 5 月 23 日
編集済み: Guillaume 2016 年 5 月 23 日
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

その他の回答 (3 件)

Image Analyst
Image Analyst 2016 年 5 月 23 日
  2 件のコメント
Image Analyst
Image Analyst 2016 年 5 月 23 日
You can ask regionprops() for an unweighted 'Centroid', or a centroid weighted by the gray levels with 'WeightedCentroid'.
See additional example attached. I do both in that example.
Hidir ABAY
Hidir ABAY 2016 年 5 月 23 日
Thanks a lot I will use this function to compare it with the others.

サインインしてコメントする。


Nut
Nut 2016 年 5 月 23 日
Bonjour,
excuse-moi pour mon francais, mais ils sont beaucoup d'ans que je ne parle cette langue.
Je pense que la fonction "regionprops" peux t'aider, il fait part de le Image Processing Toolbox. Observe le "Step 3":
  1 件のコメント
Hidir ABAY
Hidir ABAY 2016 年 5 月 23 日
Bonjour, merci beaucoup cela me sera utile.Bonne journée

サインインしてコメントする。


Hidir ABAY
Hidir ABAY 2016 年 5 月 23 日
I thank you for your answers and especially for your responsiveness =)
Have all a nice day.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by