How do I combine two images of different sizes like a photo frame?

6 次查看(过去 30 天)
I have two Images DSLR (My Photo and Photo frame), I need to make a photo frame for that i don't know how to combine both without any pixel loss. Kindly help me

回答(2 个)

Chad Greene
Chad Greene 2017-8-13
Here's a quick and dirty way.
% Load images:
man = imread('john-cena-3.jpg');
frame = imread('Transparent_Easter_Frame.png') ;
% Make the frame the same size as the man:
framer = imresize(frame,[size(man,1) size(man,2)]);
% Find empty region of the frame (where all RGB values are zero):
whiteRegion = sum(framer,3)==0;
% For context, here's the white region of the frame:
imagesc(whiteRegion)
axis off
% Display the picture of the man:
figure
image(man)
% Overlay the picture of the resized frame:
hold on
h = image(framer);
% Make the white region of the frame transparent:
set(h,'AlphaData',~whiteRegion);
axis image off
  1 个评论
Image Analyst
Image Analyst 2017-8-14
I think you could make an RGB image like this:
output = frame; % Initialize;
mask = cat(3, whiteRegion, whiteRegion, whiteRegion);
output(mask) = man(mask); % Replace white with man but only in mask region.
imshow(output);

请先登录,再进行评论。


Image Analyst
Image Analyst 2017-8-14
See my attached copy and paste demos.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by