Extract a hidden message from image

2 visualizaciones (últimos 30 días)
Nemo
Nemo el 3 de Mayo de 2016
Editada: Image Analyst el 19 de Oct. de 2020
I'm trying to write a matlab code to extract a hidden message from a given image. The hidden message is the first half of the odd part of this image. Whenever I run my code I get a black image. Any suggestions?
image=imread('hidden.png');
new=fliplr(image);
odd=(image-new)/2 ;
imshow(odd);
  3 comentarios
Nemo
Nemo el 4 de Mayo de 2016
O.K I researched the problem more and I realized this: If the image is made up of 3 elements n for (width) x1[n] for height and x2[n] for color then the odd part means (x1[n]-x1[-n]/2) .
Nemo
Nemo el 4 de Mayo de 2016
Editada: Nemo el 4 de Mayo de 2016
I actually realized something else the above code doesn't give a black image like I thought. It gives the hidden image for half of the width of the original picture. However the hidden image is too dark that I couldn't see it. So now I have two questions? 1.How to make the image brighter 2.How to read only half of the image width?

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 4 de Mayo de 2016
Make the image brighter by using [] in imshow():
imshow(odd, []);
  2 comentarios
Nemo
Nemo el 4 de Mayo de 2016
I tried it. Still the same.
Image Analyst
Image Analyst el 5 de Mayo de 2016
I do this and the image shows up. granted, it's a bit dark but considering what you're doing to it, that's not unexpected.
rgbImage = imread('peppers.png');
subplot(2,2,1);
imshow(rgbImage);
fontSize = 18;
title('Original Image', 'FontSize', fontSize);
new = fliplr(rgbImage);
subplot(2,2,2);
imshow(new);
title('New Image', 'FontSize', fontSize);
odd = (rgbImage - new)/2 ;
subplot(2,2,3);
imshow(odd);
title('Odd Image', 'FontSize', fontSize);

Iniciar sesión para comentar.

Más respuestas (2)

Walter Roberson
Walter Roberson el 4 de Mayo de 2016
I am going to guess here:
wid = size(YourImage,2);
hwid = floor(wid/2);
odd = (double(YourImage(:,1:hwid)) - double( fliplr(YourImage(:,end-hwid+1:end)) )) / 2;
shifted_odd = odd - min(odd(:));
scaled_odd = shifted_odd ./ max(shifted_odd(:));
imshow(scaled_odd);
  2 comentarios
Nemo
Nemo el 4 de Mayo de 2016
The above code displayed the correct dimension (half of the image width) but the picture is now black and white and I still can't see the hidden message which is a coloured image. But thank you anyway for trying to help
Walter Roberson
Walter Roberson el 4 de Mayo de 2016
You might need
imshow(scaled_odd, [])
Remember, though, that the hidden image cannot be a colored image, because colored images require 3 dimensional arrays but you are working with two dimensional arrays.

Iniciar sesión para comentar.


Ashton M Spillman
Ashton M Spillman el 18 de Oct. de 2020
bro idk
  1 comentario
Image Analyst
Image Analyst el 19 de Oct. de 2020
Editada: Image Analyst el 19 de Oct. de 2020
Then don't feel compelled to post an answer.
Anyway, I posted a full complete demo 4 and a half years ago for Nemo, which worked despite him not accepting any answer.

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by