0

当我运行这部分代码时,图 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)
...
4

0 回答 0