【问题标题】:Random color matrix in matlabmatlab中的随机颜色矩阵
【发布时间】:2012-06-18 04:05:17
【问题描述】:

我想生成一个随机颜色块矩阵——10 x 10 像素的随机颜色块——例如:

http://i.stack.imgur.com/Jlc8L.png

到目前为止,我已经生成了随机数并用kron放大了矩阵:

http://i.stack.imgur.com/eBU0T.png

使用:

I = kron(randn([10 10]), ones(10));
imshow(I);

我想为此添加随机颜色,但是:

I = kron(randn([10 10 3]), ones(10));

报告:

error: invalid conversion of NDArray to Matrix

如何生成随机色块矩阵?

这适用于 Psychtoolbox-3(DrawTexture 似乎无法将 10x10 随机颜色矩阵放大到 100x100 插值)。

【问题讨论】:

标签: matlab random colors octave psychtoolbox


【解决方案1】:

你还不如直接生成矩阵:

    R = rand(10,10,3);
    figure;imshow(R);

要创建块矩阵,请使用imresize

    Rb = imresize(R,10,'nearest');

【讨论】:

    【解决方案2】:

    正确的解决方案是切换特定纹理的插值算法。

    Psychtoolbox 在幕后使用 OpenGL,它允许您在 MakeTextureDrawTexture 之间摆弄原始 OpenGL 命令。

    大概,凭记忆。填写“空格”

    Screen('MakeTexture')
    Screen('GetOpenGLTexture')
    glTexParameterfv(target,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
    Screen('DrawTexture')
    

    【讨论】:

      【解决方案3】:

      这是我通常做类似事情的方式,以防万一:

      R = rand(10,10);
      subplot(1,1,1)
      imshow(mat2gray(R(:,:,1)));
      colormap jet
      

      颜色图可以更改为 Matlab 的任何预设或您自己的预设,以反映矩阵中的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        • 2013-01-02
        • 1970-01-01
        • 2014-06-06
        • 2016-02-15
        相关资源
        最近更新 更多