imshow函数不支持维度错误

时间:2012-03-26 20:55:45

标签: image matlab image-processing

我试图用matlab显示图像。图像的尺寸为< 15360x15360x3 uint8>所以当我在matlab中展示这个时,我在CPU使用率和内存方面遇到了很多麻烦。我无法放大,平移和完成其他任务。 所以我用油漆调整了我的图像大小 没有问题是在调整图像的尺寸后得到< 7680x7680x4 uint8>当我使用'imshow'时,我遇到了错误 的 ???使用==>时出错imageDisplayValidateParams> validateCData at 114 不支持的维度 那是因为4 有没有人知道我可以做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:7)

这是您今晚发布有关“图像处理”工具箱的问题的第五次时间。我强烈建议您开始阅读您正在使用的函数的文档!

在这种情况下,doc imread会为您提供以下代码段:

  

imread

     

从图形文件中读取图像语法

A = imread(filename, fmt)
[X, map] = imread(...)
[...] = imread(filename)
[...] = imread(URL,...)
[...] = imread(...,Param1,Val1,Param2,Val2...)
     

描述

     

A = imread(filename, fmt)从中读取灰度或彩色图像   由字符串filename指定的文件。如果文件不在   当前文件夹,或在MATLAB路径上的文件夹中,指定完整   路径名。

     

文本字符串fmt按其标准指定文件的格式   文件扩展名。例如,为Graphics Interchange指定'gif'   格式化文件。查看支持的格式列表及其文件   扩展,使用imformats函数。如果imread找不到文件   命名文件名,它查找名为filename.fmt的文件。

     

返回值A是包含图像数据的数组。如果是文件   包含灰度图像,A是M-by-N阵列。如果文件包含   真彩色图像,A是M-by-N-by-3阵列。对于 TIFF文件   包含使用 CMYK颜色空间的彩色图像,A是一个    M-by-N-by-4阵列。有关详细信息,请参阅格式特定信息部分中的TIFF。

Microsoft Paint正在更改您保存TIFF文件的格式。这与您在your other question中遇到的问题相同。解决方案是使用不同的图像编辑程序,如The GIMP

答案 1 :(得分:0)

您可以在Matlab中缩小图像的大小:

首先,过滤图像(可选):

sigma = 1;
flt = fspecial('gaussian', (2 * sigma + 1) * [1, 1], sigma);
img_filt = imfilter(img, flt, 'symmetric');

然后每个频率像素重新采样图像:

freq = 2;
sub_img = img_filt (1 : freq : end, 1 : freq : end, :);

我不认为,在调整图像大小时,绘画会更聪明。