Как создать матрицу изображения с нарисованной линией в MATLAB?
Я хочу построить линию от одной четко определенной точки до другой, а затем превратить ее в матрицу изображения, чтобы использовать гауссов фильтр для сглаживания. Для этого я использую функции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));
[Обновить]
High-Performance 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);