Предполагая, что у вас есть A
и B
, которые имеют одинаковый размер, вы можете скопировать нужные пиксели от A
до B
, используя логическую маску I
:
B(I) = A(I);
В этом случае A
- это мипик, I
- это binarymypic
, а B
содержит фон.
РЕДАКТИРОВАТЬ : Попробуйте:
mypic = imread('model1.jpg');
backgroundimage = imread('background.jpg');
% Check assumptions
assert(size(mypic,3) == 3, 'Expecting true colour foreground image')
assert(size(mypic,3) == 3, 'Expecting true colour background image')
assert(isequal(size(mypic), size(backgroundimage)), 'Images should have the same size')
mask = im2bw(rgb2gray(mypic));
in = reshape(mypic, [], 3);
out = reshape(backgroundimage, [], 3);
out(mask,1) = in(mask,1); % Red
out(mask,2) = in(mask,2); % Green
out(mask,3) = in(mask,3); % Blue
finalimage = reshape(out, size(backgroundimage));
imshow(finalimage)