Image processing: transition between two halves of an image

19 views (last 30 days)
Good evening,
do you know if it's possible to make the transition between two halves of an image less sharp in order to obtain a more soft and realistic effect?
I mean something like the image on the left and not the image on the right, which is too artificial and that I have obtained with the code attached below.
Imm = imread('moon.jpg');
figure
imshow(Imm)
darken = linspace(0,0,800);
darken = repmat(darken,[1085 1 3]);
Imm_darken = Imm;
Imm_darken(:,1:800,:) = uint8(darken.*single(Imm_darken(:,1:800,:)));
figure
imshow(Imm_darken)
I've tried different tecniques but none of them gives the effect I'm looking for.
Thank you in advance.

Accepted Answer

hosein Javan
hosein Javan on 12 Aug 2020
Edited: hosein Javan on 12 Aug 2020
you must define the dim factor in a way that is
1.between 0 and 1,
2. it has smooth transition.
for example here in order to make it more realistic, I used a power2 spacing instead of even spacing.
A = imread('luna.bmp'); % read image 'luna.bmp'
figure(1);imshow(A) % show the original image
dim = linspace(0,1,90);
dim = dim.^2; % create a dimming factor ranging from 0 to 1 with power2 spacing.
dim = repmat(dim,[180 1 3]); % repeat this factor for all rows
Adim = A;
Adim(:,180:-1:91,:) = uint8(dim.*single(Adim(:,180:-1:91,:))); % dim the right side of the picture
figure(2);imshow(Adim)
  4 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!