How do I combine two images of different sizes like a photo frame?
6 views (last 30 days)
Show older comments
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 Comments
Answers (2)
Chad Greene
on 13 Aug 2017
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 Comment
Image Analyst
on 14 Aug 2017
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);
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!