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