假设我想绘制如下图像:
将像素值细化为0表示黑色,白色表示1。 这些线以特定的半径和角度绘制
现在我创建一个80 x 160矩阵 texturematrix = 0(80,160);
然后我想根据线条条件将特定元素更改为1 但是我如何有效地将它们重复地与彼此分开? 非常感谢大家!
答案 0 :(得分:0)
这可能不是您想要的,但生成这样的图像可以通过绘制一组线来完成,如下所示:
% grid sizes
m = 6;
n = 5;
% line length and angle
len = 1;
theta = .1*pi;
[a,b] = meshgrid(1:m,1:n);
x = reshape([a(:),a(:)+len*cos(theta),nan(numel(a),1)]',[],1);
y = reshape([b(:),b(:)+len*sin(theta),nan(numel(b),1)]',[],1);
h = figure();
plot(x,y,'k', 'LineWidth', 2);
但这与纹理矩阵无关。因此,我们构建了一个所需大小的矩阵:
set(gca, 'position',[0 0 1 1], 'units','normalized', 'YTick',[], 'XTick',[]);
frame = frame2im(getframe(h),[0 0 1 1]);
im = imresize(frame,[80 160]);
M = ~(im(2:end,2:end,1)==255);