明確に定義されたある点から別の点まで線をプロットし、それを画像マトリックスに変換して、平滑化のためにガウス フィルターを使用したいと考えています。このために、関数line
とを使用しgetframe
て線をプロットし、図ウィンドウを画像にキャプチャしますが、getframe
非常に遅く、信頼性が高くありません。コンピューターがロックされていると何もキャプチャされず、out of memory
170 回の実行後にエラーが発生することに気付きました。
私の質問は次のとおりです。
- 私が使用できる代替品はあり
getframe
ますか? - 画像マトリックスを作成して線を直接描画する方法はありますか?
最小限のコード サンプルを次に示します。
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));
[アップデート]
を使用した高性能 Mark のアイデアlinspace
は非常に有望に見えますが、 で計算された行列座標にアクセスするにはどうすればよいlinspace
ですか? 次のコードを試しましたが、思うように動作しません。これは非常に単純で基本的な MATLAB のものだと思いますが、頭を包むことはできません。
matrix=zeros(200,60);
diagonal=round([linspace(30,200,numSteps); linspace(35,60,numSteps)]);
matrix(diagonal(1,:), diagonal(2,:))=1;
imshow(matrix);