Comment puis-je créer une image de la matrice avec une ligne tracée dans MATLAB?

Je veux tracer une ligne à partir d'un point défini à l'autre et ensuite de le transformer en une image de la matrice d'utiliser un filtre Gaussien sur elle pour le lissage. Pour cela, j'utilise les fonctions line et getframe de tracer une ligne de capture et de la figure de la fenêtre dans une image, mais getframe est très lent et pas très fiable. J'ai remarqué qu'il ne capte rien lorsque l'ordinateur est verrouillé et j'ai eu un out of memory erreur après 170 exécutions.

Mes questions sont:

  • Est-il un substitut à getframe que je peux utiliser?
  • Est-il un moyen de créer la matrice de l'image et de tracer la ligne directement?

Voici un code minimal de l'échantillon:

figure1=line([30 35] ,[200 60]);
F= getframe;
hsize=40; sigma=20;
h = fspecial('gaussian',hsize,sigma); 
filteredImg = imfilter(double(F.cdata), h,256);
imshow(uint8(filteredImg));

[mise à jour]

Haute Performance de Marque de l'idée avec linspace semble très prometteur, mais comment puis-je accéder à la matrice des coordonnées calculées avec linspace? J'ai essayé le code suivant, mais il ne fonctionne pas comme je pense qu'il devrait. Je suppose que c'est un très simple et de base de MATLAB chose, mais j'ai juste ne peut pas envelopper la tête autour de lui:

matrix=zeros(200,60);
diagonal=round([linspace(30,200,numSteps); linspace(35,60,numSteps)]);
matrix(diagonal(1,:), diagonal(2,:))=1;
imshow(matrix);
Donc, ce que vous faites est rasterisation d'un vecteur d'image. Beaucoup de bonnes références sur ce sujet, Wikipédia, comme toujours, est un bon endroit pour commencer.
Je sais, mais j'essaie toujours d'utiliser Matlab propres fonctions. Je ne suis pas en apprendre autant, mais ils sont plus rapides et je n'ai pas passé du temps à débugger comme mon propre code.

OriginalL'auteur Framester | 2009-12-21