TP-vision/voisinage.m

34 lines
1.2 KiB
Mathematica
Raw Normal View History

2023-06-25 14:42:57 +00:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% fonction renvoyant les niveaux de gris du voisinage de chaque point en ligne
function voisins = voisinage(I, xyPt, TailleFenetre)
% ENTREES
% I : l'image
% xyPt : les coordonnees des points dont nous cherchons le voisinage.
% ATTENTION : on fait l'hypothese qu'il n'y a aucun point sur les bords
% TailleFenetre : La taille de la fenêtre de correlation correspond
% a TailleFenetre x TailleFenetre
% SORTIE
% voisins : une matrice contenant pour chaque ligne (= chaque point),
% le voisinage du point associe
% Nombre de points pour lesquels leur voisinage est cherche
npt = size(xyPt, 1);
% Initialisation
voisins = zeros(npt, TailleFenetre * TailleFenetre);
% Calcul de la demi-fenetre de correlation
K = floor(TailleFenetre / 2);
% Pour chaque point
for i = 1:npt
% On recupere les coordonnees du point
x = xyPt(i, 1);
y = xyPt(i, 2);
% On recupere le voisinage du point
voisins(i, :) = reshape(I(y - K:y + K, x - K:x + K), 1, TailleFenetre * TailleFenetre);
end
end