How to Show modified image in MATLAB.

3 vues (au cours des 30 derniers jours)
John schwan
John schwan le 16 Juil 2021
Commenté : John schwan le 24 Juil 2021
Hi,
I am looking for a method which help me to showing modified patches of image in matlab into the original image. I select random patches from an image half of patches i brighten and half of patches i darken and when i write "imshow(A)" it show me the original image not the modified one. I have required a method which show me the modified patches pasted into their original image.
Here is my Coding!
clc;
A=imread('C:\Users\hp\Desktop\matlab\pictures\lenna.png');%sample image
rnd_x = randperm(size(A,1)-128,7);%choose 7 random unique points on x-axis
rnd_y = randperm(size(A,2)-128,7);%choose 7 random unique points on y-axis
image(A)
for ii = 1:4
for jj = 5:7
piece{jj} = A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)+100;
figure(jj)
a=imadjust(jj);
imshow(piece{jj});
end
piece{ii} = A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)-100;%Convert chosen numbers to image pieces
figure(ii)
b=imadjust(ii);
imshow(piece{ii});
end
imshow(A)

Réponse acceptée

Chetan Gupta
Chetan Gupta le 16 Juil 2021
Modifié(e) : Chetan Gupta le 16 Juil 2021
Hi John,
I understand that you want to take 7 patches of size 127X127 from the original image and make 3 of them lighter by adding 100 to there pixel values and 4 of them darker by subtracting 100 from there pixel values. You are not able to see any change in the image ‘A’ as you didn’t make any changes on it, rather stored the changed pixel values in ‘piece’. You can try this modified code.
clc;
A=imread('C:\Users\hp\Desktop\matlab\pictures\lenna.png');%sample image
rnd_x = randperm(size(A,1)-128,7);%choose 7 random unique points on x-axis
rnd_y = randperm(size(A,2)-128,7);%choose 7 random unique points on y-axis
image(A)
for ii = 1:4
for jj = 5:7
piece{jj} = A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)+100;
A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)= piece{jj}; % add the changed pixel values to the original image A
figure(jj)
a=imadjust(jj);
imshow(piece{jj});
end
piece{ii} = A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)-100;%Convert chosen numbers to image pieces
A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)= piece{ii}; % add the changed pixel values to the original image A
figure(ii)
b=imadjust(ii);
imshow(piece{ii});
end
imshow(A)
Still, this might not be the best way to darken or lighter an image. AS by adding 100 or subtracting 100 you might land on pixel values greater than 255 or less than 0 respectively. Thus, making those portions completely white or black.
You can refer to this answer How do I reduce image brightness and increase image contrast? - MATLAB Answers - MATLAB Central (mathworks.com) to know more about changing brightness of images.
Thanks
  1 commentaire
John schwan
John schwan le 24 Juil 2021
Chetan Gupta
Thank you so much! It's working. Thank's alot again :-)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Lighting, Transparency, and Shading dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by