我有两点可以说:
现在我想在这两点之间划一条线......并且线应该出现在图像上意味着应该是可见的.
这该怎么做????
我想绘制一条从一个明确定义的点到另一个定义点的线,然后将其转换为图像矩阵,在其上使用高斯滤波器进行平滑.为此,我使用函数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));
Run Code Online (Sandbox Code Playgroud)
[更新]
高性能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);
Run Code Online (Sandbox Code Playgroud) 我想检测图像中的两个像素,并获得它们之间绘制线的所有像素.
我不想绘制线条,我只想获得两个像素之间虚拟线条的所有像素位置[图像中的(x,y)].
MATLAB中的哪个函数可以帮助我编写代码,我该如何使用它?.
谢谢 !