2009-12-16 11 views
5

J'ai généré une parcelle commeTourner une parcelle dans l'image Matlab

figure; hold; 
axis([0 10 0 10]); 
fill([ 1 1 5 5], [5 1 1 5],'b') 

et maintenant je veux avoir ce complot comme une matrice pour que je puisse dire filtrer le blog avec une gaussienne. Google j'ai trouvé ce fil Rasterizing Plot to Image à MATLAB Central. Je l'ai essayé, mais je ne pouvais l'obtenir que pour des lignes ou des graphiques fonctionnels.

Avez-vous des idées?

+0

Je sais, j'ai fait l'exemple trop simple/trivial. Mais avec la réponse que j'ai marquée, on peut facilement rastériser des tracés arbitraires. – Framester

Répondre

8

Vous pouvez utiliser la fonction GETFRAME. Il renvoie la structure de trame de film, qui est en fait la figure rastérisée. Le champ cdata contiendra votre matrice.

F=getframe; 
figure(2) 
imagesc(F.cdata); 
0

Quelles sont les caractéristiques souhaitées de votre matrice cible? Et quel genre d'images voulez-vous pixelliser?

Vous voyez, pour le seul exemple que vous nous avez donné est presque trivial de définir une matrice représentant l'image ...

1. figmat = ones(10,10,3) % create a 10x10 raster where each entry is a triple for RGB, setting them all to 1 colours the whole raster white 
2. figmat(2:5,2:5,1:2) = 0 % sets RG components in the coloured area to 0, leaving only blue 

Votre matrice est une trame pour commencer. Maintenant, vous pouvez utiliser l'image de fonction intégrée pour visualiser votre matrice. Jetez un oeil à la documentation de cette fonction. Et notez que ma suggestion ne correspond pas à la spécification à utiliser avec image() et colormap().