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
| function reticule_matlab
%% création de la fenêtre principal
figure('Position', [0, 300, 600, 400],... % Position de la fenêtre.
'Name', 'Acquisition',... % Nom de la fenêtre.
'NumberTitle', 'off',... % Non affichage 'figure X'.
'Pointer','fullcross',... % Choix du réticule.
'WindowButtonMotionFcn',@trace); %WindowButtonMotionFcn permet de récupérer la position de la souris.
%% Ouverture et affichage de la photo.
I = imread('noir_et_blanc.png');
imshow(I);
axesimg = gca;
%% Création de la fenêtre pour afficher le tracer de X.
figure('Position', [650, 550, 600, 400],...
'Name', 'X(ligne)',...
'NumberTitle', 'off');
axesx = axes();
%% Création de la fenêtre pour afficher le tracer de y.
figure('Position', [650, 50, 600, 400],...
'Name', 'Y(colonne)',...
'NumberTitle', 'off');
axesy = axes();
%% Création d'une matrice de zéro pour la hauteur et pour la largeur de l'image.
x = zeros(size(I,2),1); % on récupère la taille en largeur de l'image avec size(I,2)
y = zeros(size(I,1),1);% on récupère la taille en hauteur de l'image avec size(I,1)
%% Affichage des graphes dimensionner à la taille de l'image.
px = plot(axesx,x);
py = plot(axesy,y);
%% Fonction de tracer.
function trace(~,~,~)
pt = ceil(get(axesimg,'CurrentPoint')); %Arrondi au positif sup axesming et position souris(CurrentPoint).
% pt est une variable qui nous permet de localiser la souris par
% rapport à l'axe de l'image.
% On mais a jour le tracer que si on ce trouve sur l'image:
if pt(1,1) >= 1 && pt(1,2) >= 1 && pt(1,1) <= size(I,2) && pt(1,2) <= size(I,1)
x = I(pt(1,2),:); % Extraction ligne des x pointée
y = I(:,pt(1,1)); % Extraction colonne des y pointée
set(px,'YData',x); % Mise à jour des paramètres graphique (point et axe)
set(py,'YData',y); % Mise à jour les paramètres graphique (point et axe)
end
end
end |
Partager