Se han hecho populares estas imágenes en Facebook, son fotos ocultadas a través de una densa rejilla espacial. Te mostramos cómo hacer esta ilusión óptica con Matlab.
Básicamente, se trata de disminuir el contraste de las fotos, alejarse de los tonos oscuros y luego introducir muchas franjas oscuras en la imagen. El resultado es que percibimos primero franjas oscuras y claras, pues entre ellas hay más contraste, cuando cambiamos de perspectiva (al inclinar la pantalla o la cabeza o alejarnos de la imagen) o sacudir la cabeza podemos ver la imagen oculta.
Se trata más de una curiosidad que de un verdadero sistema de criptografía, asi que diviértanse con el código y las imágenes que dejo en esta entrada.
Preguntas para pensar
1) ¿Por qué aparece la imagen cuando cambiamos de perspectiva?
Ejercicios
1) Altera el código para que sea una función de cuatro parámetros, que de de salida una imagen .gif
Imagen utilizada
Guión Matlab
% A limpiar la casa
clear all; close all; clc;
% Cargar la imagen y ponerla en grises
im_fuente = rgb2gray(imread('maz.jpg'));
% cambia la clase de una variable
imgs = cast(im_fuente,'double');
% La imagen se ajusta a 60 tonos de gris,
img = 60*((imgs)./(max(max(imgs))));
img = img + 195; % desplazar los tonos a 195
% al final tengo tonos de 195 a 255
[f c d] = size(img); % el proceso es para cada capa
% Paso es el número de columnas negras en la imagen final
paso = floor(c/160); %redondea hacia abajo, frecuencia 1/160
for i = 1:2*paso:c
img(:,i:i+paso,:) = 0; %img suele tener tres capas
end
im_final = cast(img,'uint8');
imshow(im_final); % ver para creer
%fin del guión
Más información en la ref.
Muchas gracias... Si es de utilidad.
ResponderEliminarYo lo que busco es poder generar, solamente la rejilla...
xD