Je veux faire un script matlab (.m) qui permet faire le calcul du centre de masse d'une certaine image.

Pouvez vous m'aider:

Voila ce que j'ai fais pour l'instant: (center_of_mass_image.m)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
clc;    %preinitialisations a chaque script matlab
clear all;
close all;
 
disp('Application pour faire le calcul du centre de masse pour une image entiere lis avec imread'); %title de l'application
 
% i c'est une image gray , j- c'est une image binaire
 
i=imread('cameraman.tif');imshow(i) % je lis dans ma variable i l'image
j = im2bw(i, 0.4); % Threshold en image binaire (avec blanc et noir seulement)
valeur_threshold = 100;
j = imfill(j, 'holes');
 
subplot(3,2,1); imagesc(i); colormap(gray(256)); title
('Image initielle');
 
subplot(3,2,2); imagesc(j); colormap(gray(256)); 
title('Image binaire');
 
label= bwlabel(j, 8); %etiquetation de l'image avec bwlabel
couleurs_labels= label2rgb (labeledImage, 'hsv', 'k', 'shuffle');%couleurs aleatoires pour les labels
 
subplot(3,2,3); imagesc(label); title('Image avec des regions etiquetees avec la fonction bwlabel');
 
subplot(3,2,4); imagesc(couleurs_labels); title('Couleur aleatoires pour les labels');
 
measurer_taches_d'encre= regionprops(labeledImage, 'all'); %toutes les proprietes des taches d'encre de l'image
numero_des_taches= size(mesurer_taches, 1);
 
subplot(3,2,5); imagesc(i); title('Exposer les elements');
 
hold on; %retiens tous les graphes avec subplot
 
%Fonction bwboundaries retourne un cell array ou chaque cellule contient les coordonnes (ligne et colonne) pour chaque objet de l'image.
 
frontières = bwboundaries(j); % ou j c'est l'image binaire
 
for compteur = 1 : numero_des_taches
tache_courante = boundaries{k};
plot(tache_courante(:,2), tache_courant(:,1), 'g', 'LineWidth', 2); %couleur vert dimension 2 avec la propriete LineWidth
end
hold off; %hold off pour tous les subplots
 
for k = 1 : numero_des_taches % parcourir tous les taches
lister_les_pixels = mesurer_taches(k).PixelIdxList; % lister les pixels de chaque tache
 
 
hold off;
% operation moyenne pour chaque tache avec la fonction mean
 
moyenne = mean(i(lister_les_pixels)); % intensite moyenne dans l'image i
 
surface_tache = mesurer_taches(k).Area; % surface
perimetre_tache = mesurer_taches(k).Perimeter; % perimetre
centre_de_masse = mesurer_taches(k).Centroid; % centroid -centre de masse
 
%affichage des donnees
 
    fprintf(1,'#%d %18.1f %11.1f %8.1f %8.1f %8.1f\n', k, moyenne,
surface_tache, perimetre_tache, centre_de_masse); %affichage avec fprintf
end
Pouvez vous m'aider svp?

J'ai l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
??? Error: File: center_of_mass_image.m Line: 9 Column: 11
Expression or statement is incomplete or incorrect.