Wie erstelle ich eine Bildmatrix mit einer darin gezeichneten Linie in MATLAB?
Ich möchte eine Linie von einem genau definierten Punkt zu einem anderen zeichnen und sie dann in eine Bildmatrix umwandeln, um einen Gaußschen Filter zum Glätten zu verwenden. Dafür benutze ich die Funktionenline
undgetframe
um eine Linie zu zeichnen und das Figurenfenster in einem Bild festzuhalten, abergetframe
ist sehr langsam und nicht sehr zuverlässig. Mir ist aufgefallen, dass es nichts erfasst, wenn der Computer gesperrt ist und ich eine habeout of memory
Fehler nach 170 Ausführungen.
Meine Fragen sind:
Gibt es einen Ersatz fürgetframe
das kann ich benutzen?Gibt es eine Möglichkeit, die Bildmatrix zu erstellen und die Linie direkt darin zu zeichnen?Hier ist ein minimales Codebeispiel:
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));
[aktualisieren]
High-Performance Marks Idee mitlinspace
sieht sehr vielversprechend aus, aber wie greife ich auf die mit berechneten Matrixkoordinaten zu?linspace
? Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht so, wie ich es mir vorgestellt habe. Ich nehme an, es ist eine sehr einfache und grundlegende MATLAB-Sache, aber ich kann mich einfach nicht darum kümmern:
matrix=zeros(200,60);
diagonal=round([linspace(30,200,numSteps); linspace(35,60,numSteps)]);
matrix(diagonal(1,:), diagonal(2,:))=1;
imshow(matrix);