我使用MATLAB将几个高分辨率图像一起剪辑,将叠加坐标注册到文本文件中,然后读取文本文件并加载蒙太奇图像。然而,一旦我有蒙太奇,组成蒙太奇的单个图像就会失去分辨率。有没有办法显示蒙太奇,每个单独的图像的完整分辨率仍然完整?
这是代码。
file = 'ImageFile.txt';
info = importdata(file);
ImageNames = info.textdata(:,1);
xoffset = info.data(:,1);
yoffset = info.data(:,2);
for i=1:length(ImageNames)
diffx(i) = xoffset(length(ImageNames),1) - xoffset(i,1);
end
diffx = (diffx)';
for j=1:length(ImageNames)
diffy(j) = yoffset(length(ImageNames),1) - yoffset(j,1);
end
diffy = (diffy)';
colormap(gray(256));
for k=1:length(ImageNames)
imshow(ImageNames{k,1}, 'XData', [diffx(k,1) (size(ImageNames{1},2) + diffx(k,1))], 'YData',[diffy(k,1) (size(ImageNames{1}, 1) + diffy(k,1))]), hold on
end
答案 0 :(得分:0)
这是我用来实现蒙太奇的方法。你可能感觉不一样。
我认为你有最终蒙太奇中每个图像位置的坐标。
假设我必须创建一个包含9个图像的蒙太奇,它们被命名为1.jpg,2.jpg,3.jpg,... 9.jpg。
for i=1:9
filename = sprintf('%d.jpg',i);
a{i} = imread(filename);
end
montage = [a{1} a{2} a{3}; a{4} a{5} a{6}; a{7} a{8} a{9}];
imshow(montage);
imwrite(montage, 'montage.jpg');