MATLAB文档中给出的蒙太奇函数返回错误的代码

时间:2018-04-25 11:46:19

标签: matlab

我试图在MATLAB中显示图像蒙太奇,其中每个图像是N x M阵列,K图像存储为N x M x K阵列。

MATLAB返回错误:

Error using images.internal.imageDisplayValidateParams>validateCData (line 115)
Multi-plane image inputs must be RGB images of size MxNx3.

Error in images.internal.imageDisplayValidateParams (line 27)
common_args.CData = validateCData(common_args.CData,image_type);

Error in images.internal.imageDisplayParseInputs (line 78)
common_args = images.internal.imageDisplayValidateParams(common_args);

Error in imshow (line 240)
      images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});

Error in montage (line 152)
    hh = imshow(bigImage, displayRange,parentArgs{:});

当我复制粘贴并运行MATLAB documentation for the montage function提供的代码时,这些确切的错误仍然存​​在,包括在这里:

img1 = imread('AT3_1m4_01.tif');
img2 = imread('AT3_1m4_02.tif');
img3 = imread('AT3_1m4_03.tif');
img4 = imread('AT3_1m4_04.tif');
multi = cat(3,img1,img2,img3,img4);

montage(multi);

此代码应该以与我正在排除故障的原始代码相同的方式从N x M x K阵列创建蒙太奇,并且不能以相同的方式。

是否有其他人从此代码中收到这些错误?有人可以告诉我如何调整此代码以生成图像蒙太奇,如文档示例所示?

2 个答案:

答案 0 :(得分:0)

我的猜测是这是版本错误。你在运行Matlab 2018a吗?这是文档的版本。我猜想老版本的Matlab使用了不同的界面。

我会尝试输入

help montage 

在你的Matlab中。也许那里有一些额外的提示。

答案 1 :(得分:0)

文档说

  

蒙太奇(I)显示复帧图像阵列I的所有帧   多帧图像阵列可以是二进制,灰度或   真彩色图像。二进制或灰度图像序列必须是   M-by-N-by-K或M-by-by-by-by-by-K阵列。真彩色图像序列   必须是M-by-by-by-by-by-K阵列。

然而M-by-N-by-K似乎不起作用。但M-by-N-by-1-by-K确实如此。

因此

multi = cat(4,img1,img2,img3,img4);