制作图像遵循matlab / octave中螺旋/方程的路径

时间:2017-03-18 14:10:25

标签: arrays matlab matrix octave reshape

我知道我可以使用下面的示例代码制作螺旋,但是如何让图像跟随下面的等式的螺旋路径。

t = linspace(0,4*pi,400);
x = t.*cos(t);
y = t.*sin(t);
plot(x,y)

Spiral Image

示例:我有一个图像(RGB),如下所示,我将其转换为 1 x N 矩阵。我的想法是制作一个 1 X N矩阵并让该矩阵遵循螺旋路径。如何让图像遵循螺旋方程的路径?

f=imread('/tmp/rgb_line.png');
[Frows Fcols Fdims]=size(f)

f=double(f); %need to convert to double to do math functions on it

for ii=1:Fdims
  img(:,:,ii)=reshape(f(:,:,ii)',1,numel(f(:,:,ii))); %reshape array as one row and 3 dimensions 
end

彩虹线(输入/重塑矩阵):

Rainbow line image

所以彩虹螺旋输出看起来像这样。 Please note that the order of the colours are not correct因为这是我能找到的最接近我想要做的事情的图像。

Rainbow spiral output

PS:我使用Octave 4.0,类似于Matlab

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:

string2

然后你需要使用某种掩码来消除不需要的像素。