2013-06-26 4 views
0

J'ai une image grascale où je veux superposer différentes couleurs à différentes zones qui ont des propriétés similaires (par exemple direction ou intensité etc.) Je ne parle pas d'une carte de chaleur. J'ai plutôt un code de segmentation codé en dur où j'ai regroupé des pixels par leurs "similitudes". Maintenant, je veux sur les couleurs de ces pixels. Par exemple, pour une image de 3x3 pixels, disons que je sais que la rangée du haut et la rangée du bas sont du même groupe. Et la rangée du milieu est un autre groupe. Comment puis-je superposer une teinte rouge avec un groupe et une teinte bleue avec un autre?Matlab superposition de couleur sur une image

+0

possible de [superposition d'images avec la matrice] (http://stackoverflow.com/questions/6524886/image-overlay-with-matrix) – bla

+0

que mon les valeurs de pixels ne sont pas normalisées. J'ai cherché des modèles spécifiques dans mon code de segmentation. Donc, la matrice pourrait avoir quelque chose comme 0,2 0,3 0,35 $ et 0,8 0,8 0,85 $ pour l'intensité des pixels dans la rangée supérieure et inférieure, mais je veux qu'ils montrent la même couleur/teinte. Je groupais par d'autres propriétés autres que l'intensité de la couleur. La carte de chaleur séparera ces deux rangées comme ayant deux couleurs différentes. – user2521074

Répondre

0

Vous pouvez transformer votre image en niveaux de gris 3x3x1 en une image couleur 3x3x3, puis ajuster les valeurs de teinte pour les pixels de votre choix.

donc dire:

GreyImg=[0.2, 0.3, 0.35;... 
     0.5, 0.6, 0.56;... 
     0.8, 0.8, 0.85]; 
%Convert To Color Img 
ColorImg(:,:,1)=GreyImg; 
ColorImg(:,:,2)=GreyImg; 
ColorImg(:,:,3)=GreyImg; 

%Add a red hew to top row: 
ColorImg(1:1,:,1)=ColorImg(1:1,:,1)+[.2, .2, .2]; 
%Add a blew hew to top row: 
ColorImg(3:3,:,3)=ColorImg(3:3,:,3)+[.2, .2, .2]; 

imshow(ColorImg); 
La différence est ici double
Questions connexes