2010-10-21 5 views
2

Je:MATLAB: Comment changer la couleur de imhist et la taille de la fenêtre?

img = imread('pic.jpg','jpg'); 
r = img(:,:,1); 
g = img(:,:,2); 
b = img(:,:,3); 

subplot(3,1,1); 
imhist(r); 
subplot(3,1,2); 
imhist(g); 
subplot(3,1,3); 
imhist(b); 

Comment puis-je changer les couleurs de l'histogramme à rouge, vert et bleu?
Comment puis-je changer la taille de la fenêtre qui apparaît?

EDIT:
Réponse de Luis Miguel en ce qui concerne la taille des œuvres de fenêtre, mais si je veux juste changer la hauteur de la fenêtre et à gauche d'autres parameneters (x, y, largeur) inchangée?

+0

Vous pouvez trouver un exemple de cette couleur dans cette histogrammes réponse connexe: http://stackoverflow.com/questions/3961971/how-do-i-re-implement-a-color-based-histogram- do-feature-extraction-based-on-col/3962867 # 3962867 – Amro

+0

C'est bien, mais je dois utiliser imhist. –

+0

Je viens de réaliser que c'était aussi votre question, désolé;) – Amro

Répondre

4

Taille de la fenêtre:
Vous pouvez obtenir, puis définir «Position».

pos = get(h,'Position'); 
pos(4) = pos(4) + 10; % changing height only 
pos(2) = pos(2) - 10; % you probably would want that - just try 
set(h, 'Position', pos); 
+3

Vous pouvez faire 'pos (2) = max (pos (2) -10,0);' pour empêcher que le fond de la fenêtre ne sorte de l'écran. – yuk

2

Vous pouvez changer la couleur des barres de l'histogramme et leurs lignes limites comme mentionné dans MATLAB's reference, comme ceci:

h = findobj(gca,'Type','patch'); 
set(h,'FaceColor','r','EdgeColor','w') 

Pour modifier la taille de la fenêtre en faisant quelque chose comme ceci:

h = figure(1); 
set(h, 'Position', [x y width height]) 
+0

Pouvez-vous mélanger cela avec mon code? Je ne sais pas comment faire ça ... –

+0

Ça ne marche pas pour imhist. Cela fonctionne pour hist. Comment puis-je faire ceci? –

+0

Vous pouvez essayer de définir la taille de la figure avant de la tracer. Ensuite, quand vous tracez cela occupera la fenêtre de la figure, je pense. –

Questions connexes