【问题标题】:Using MATLAB to save a montage of many images as one large image file at full resolution使用 MATLAB 将许多图像的蒙太奇保存为一个全分辨率的大图像文件
【发布时间】:2015-06-25 15:06:18
【问题描述】:

我正在尝试使用 MATLAB 函数 imwrite 保存许多(约 500 个,每个 2MB)图像的蒙太奇,但是我不断收到此错误:

Error using imwrite>validateSizes (line 632)
Images must contain fewer than 2^32 - 1 bytes of data.
Error in imwrite (line 463)
validateSizes(data);

这是我正在使用的代码:

close all
clear all
clc
tic
file = 'ImageRegistrations.txt';
info = importdata(file);
ImageNames = info.textdata(:,1);
xoffset = info.data(:,1);
yoffset = info.data(:,2);
for i = 1:length(ImageNames);
ImageNames{i,1} = imread(ImageNames{i,1});
ImageNames{i,1} = flipud(ImageNames{i,1});
end
ImageNames = flipud(ImageNames);

for i=1:length(ImageNames)
    diffx(i) = xoffset(length(ImageNames),1) - xoffset(i,1);
end
diffx = (diffx)';
diffx = flipud(diffx);

for j=1:length(ImageNames)
    diffy(j) = yoffset(length(ImageNames),1) - yoffset(j,1);
end
diffy = (diffy)';
diffy = flipud(diffy);
matrix = zeros(max(diffy)+abs(min(diffy))+(2*1004),max(diffx)+abs(min(diffx))+(2*1002));
%matrix(1:size(ImageNames{1,1},1),1:size(ImageNames{1,1},2)) = ImageNames{1,1};
for q=1:length(ImageNames)
matrix((diffy(q)+abs(min(diffy))+1):(diffy(q)+abs(min(diffy))+size(ImageNames{q,1},1)),(diffx(q)+abs(min(diffx))+1):((diffx(q)+abs(min(diffx))+size(ImageNames{q,1},2)))) = ImageNames{q,1};
end

graymatrix = mat2gray(matrix);
graymatrix = flipud(graymatrix);
figure(2)
imshow(graymatrix)
imwrite(graymatrix, 'montage.tif')
toc

我使用 imwrite 是因为它将最终蒙太奇保存在全分辨率文件中,而如果我只是单击图形文件上的保存,它会将其保存为低分辨率文件。

谢谢!

【问题讨论】:

  • [tag: processing] 标签应该只用于关于处理语言的问题。

标签: image matlab image-processing registration resolution


【解决方案1】:

Error 确实如其所言。 imwrite 中的输入变量大小存在某种内置限制,您正在处理它。

请注意,大多数图像都存储为uint8,但我猜你最终会因为处理而得到双打。这会增加内存使用量。

因此,转换为另一种类型可能会有所帮助。在调用 imwrite 之前尝试使用 im2uint8(假设您的变量 graymatrix 是双倍的,在 0 和 1 之间缩放)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    相关资源
    最近更新 更多