当我运行这部分代码时,图 1 显示转换后的图像文件,其中存储在 X 中的正确颜色值。
将 I 复制到 Grid 后,颜色错误。
我发现颜色图值以某种方式向上移动了一行。很难解释,但在运行期间的每一点,X 都有这些偏移值。在图 1 中,无论出于何种原因,图像都以正确的颜色显示,但在图 2 中,地图发生了移动。我可以写几行来解决这个问题,但我仍然不知道发生了什么。
有人有什么想法吗?如果有人想运行它,这里是指向 peppers.png 文件的链接。 https://homepages.cae.wisc.edu/~ece533/images/peppers.png
Grid = ones(1000); %create background image
for m = 100:100:1000
Grid(m, :) = 2;
Grid(:, m) = 2;
end
[I, X] = rgb2ind(imread('peppers.png'), 256); %read foreground image
IM = size(I,1);
IN = size(I,2);
imageCP= [round(IM/2) round(IN/2)];
CP = [500 500];
upperLeft = [CP(1)-imageCP(1) CP(2)-imageCP(2)];
figure(1) %display foreground/background separately
subplot 211
imshow(Grid,X)
subplot 212
imshow(I,X)
for m = 0:IM-1 %copy foreground image onto center of background image
for n = 0:IN-1
Grid(upperLeft(1)+m, upperLeft(2)+n) = I(m+1,n+1);
end
end
figure(2)
imshow(Grid,X)
...