为什么我需要调整第一张图片的大小来混合两张图片?
Why do I need to resize the first image to blend two images?
我已经使用金字塔实现了图像混合。如果我调整第一张图片的大小,效果很好,但如果我调整它的大小,我得不到我想要的。所以,我需要做的是在不调整大小的情况下进行混合以获得正确的结果。我的代码是:
eyeImg = im2double(imread('eye.jpg'));
handImg = im2double(imread('hand.jpg'));
mask1 = im2double(imread('maskOrgan.jpg'));
eyeImage = imresize(eyeImg,[size(handImg,1) size(handImg,2)]);
mask2 = 1-mask1; %complement of the mask
level = 5;
lpA = genPyr(eyeImage,'laplace',level); % the Laplacian pyramid
lpB = genPyr(handImg,'laplace',level); % the Laplacian pyramid
gpM1 = genPyr(mask1, 'gauss', level);
gpM2 = genPyr(mask2, 'gauss', level);
limgo = cell(1,level); % the blended pyramid
for p = 1:level
[Mp, Np, ~] = size(lpA{p});
maskap = imresize(mask1,[Mp Np]);
maskbp = imresize(mask2,[Mp Np]);
limgo{p} = lpA{p}.*maskap + lpB{p}.*maskbp;
end
imgo = pyrReconstruct(limgo);
如果我不调整大小,我会收到以下错误。
Array dimensions must match for binary array op.
Error in main (line 35)
limgo{p} = lpA{p}.*maskap + lpB{p}.*maskbp;
如果您不想调整大小,则必须 'padding',即将最小图像的大小增加到最大的大小...从而保持两张图像的原始比例。用零创建一个较大的图像并将最小的图像复制到其中。
我已经使用金字塔实现了图像混合。如果我调整第一张图片的大小,效果很好,但如果我调整它的大小,我得不到我想要的。所以,我需要做的是在不调整大小的情况下进行混合以获得正确的结果。我的代码是:
eyeImg = im2double(imread('eye.jpg'));
handImg = im2double(imread('hand.jpg'));
mask1 = im2double(imread('maskOrgan.jpg'));
eyeImage = imresize(eyeImg,[size(handImg,1) size(handImg,2)]);
mask2 = 1-mask1; %complement of the mask
level = 5;
lpA = genPyr(eyeImage,'laplace',level); % the Laplacian pyramid
lpB = genPyr(handImg,'laplace',level); % the Laplacian pyramid
gpM1 = genPyr(mask1, 'gauss', level);
gpM2 = genPyr(mask2, 'gauss', level);
limgo = cell(1,level); % the blended pyramid
for p = 1:level
[Mp, Np, ~] = size(lpA{p});
maskap = imresize(mask1,[Mp Np]);
maskbp = imresize(mask2,[Mp Np]);
limgo{p} = lpA{p}.*maskap + lpB{p}.*maskbp;
end
imgo = pyrReconstruct(limgo);
如果我不调整大小,我会收到以下错误。
Array dimensions must match for binary array op.
Error in main (line 35)
limgo{p} = lpA{p}.*maskap + lpB{p}.*maskbp;
如果您不想调整大小,则必须 'padding',即将最小图像的大小增加到最大的大小...从而保持两张图像的原始比例。用零创建一个较大的图像并将最小的图像复制到其中。