Ajuster une image sur matlab

Fermé
ali - 18 juin 2009 à 00:28
 ali - 18 juin 2009 à 16:47
Bonjour,
je suis débutante en matlab. J'essaye d'ajuster une image RGB. Pour ce faire j'essaie donc de multiplier la matrice 3D de dimension (72x72x3) M représentant mon image par une matrice 2D (3x3) appelée S. Le probleme est que S est représentée horizontalement et verticalement et que je souhaite la multiplier (représentant les valeurs RGB de chaque pixel) à un vecteur en profondeur. Je ne sais pas comment faire pour résoudre le problème. C'est sans doute très simple mais je suis bloquée. Voila le début de mon programme.
S = [1.9695 -0.4340 -0.5407;
-0.6036 2.3376 -0.4101;
-0.1960 -0.7182 2.3712]

for i=1:72
for j=1:72
V1(i,j,:)=M(i,j,:)*S
end
end

Le but étant d'avoir à la fin une matrice V (72x72x3) dont les couleurs ont été modifiée.
Merci d'avance de votre aide
A voir également:

2 réponses

Salut,

Si j'ai bien compris, vous voulez modifier les couleurs de votre image RGB par un coefficient pour chaque couleur.
si c'est le cas, vous n'avez pas besoin d'une S (3x3). votre facteur multiplicateur est un vecteur à une dimension, disant (3x1).
Car pour chaque point de votre image, il existe une 3e dimension: vecteur de 3 valeurs (R, G, et B).
et dans ce cas, il faut noter aussi qu'il s'agit d'une multiplication point par point et non de vecteur, donc utilisez le (.*) et non pas (*).

Voilà , j'espère que ces lignes vont vous aider. Bonne continuation.
0
Merci de me répondre. Je veux réaliser une multiplication matricielle entre le vecteur V comprenant 3 valeurs et la matrice S, ce n'est pas une multiplication point par point.
Le problème est le sens du vecteur: V est un vecteur en profondeur. Je n'arrive donc pas à multiplier V*S alors qu'à la main ca serai très simple. Comment changer le sens de ce vecteur, ou comment tourner la matrice M de facon à de que V(i,j,:) soit horizontal?
0