11-19-2007: (2:49am)

 

In response to [link] on digg:

 

 

Here is the local cache of the image wrt the source:

After de-shuffling:

Equalized Image:

I dont care the range for the normalizing and offsetting the original image above. And came up with this:

Original Image:

Shuffled images with range set at 15 and 25, respectively:

 

So increasing the range reveals more information. Just remember that offset and range add up to 255 for 8 bit images. The number of columns suitable is image resolution and viewing distance dependent. The basic idea is the same, you can use some other ways of generating the mask. We are done, easy as pi... RRRhhhh phuk, now I cannot look at the screens any longer. Damnit, cant focus anymore...

 

So ya already know what this should be ^_*???

DIY Steps:

  1. Normalize image to range [0:1].

  2. Scale normalized image to some value said 25.

  3. Add offset (i.e. 230) for which offset+scale=255 for 8-bit image.

  4. Mask out columns for which every other 3x columns =0.

  5. Save the image and you are done!!!

Here is the quick Matlab code:

clear all; clc; close all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%dismantling%%%%%%%%%%%%%%%%

filename='d8bc52be2b.jpg';

img=double(imread(filename));

imgodd=[]; imgeve=[];

for x=1:floor(size(img,2)/3);

    if(mod((x-1),2)==0);

        imgodd(1:size(img,1),size(imgodd,2)+1:size(imgodd,2)+3)=img(1:size(img,1),x*3-2:x*3);

    else

        imgeve(1:size(img,1),size(imgeve,2)+1:size(imgeve,2)+3)=img(1:size(img,1),x*3-2:x*3);

    end;

end;

figure(1);

subplot(2,2,1); imshow(uint8(img));

    title('desired output'); xlabel('x'); ylabel('y');

subplot(2,2,3); imshow(uint8(imgodd));

    title(['odd min/max',num2str(min(imgodd(:))),'/',num2str(max(imgodd(:)))]);

subplot(2,2,4); imshow(uint8(imgeve));

    title(['even min/max',num2str(min(imgeve(:))),'/',num2str(max(imgeve(:)))]);

imgwip=img; imgwip(find(img<30))=0;

subplot(2,2,2); imshow(uint8(imgwip)); title('min wiped');

 

%%%%%%%%%%%%%%%%%%%%%%%Masking%%%%%%%%%%%%%%%%%%%%%%

filename='Griffon.jpg';

filenameout='Griffon_shuffled.jpg';

img=imread(filename);

imgorg=img;

img=(img-min(img(:)))./(max(img(:))-min(img(:)))*25+230;

for x=1:floor(size(img,2)/3);

    if(mod((x-1),2)==0);

        img(1:size(img,1),x*3-2:x*3,:)=0;

    end;

end;

figure(2); subplot(2,1,1);imshow(uint8(imgorg)); title('orig');

subplot(2,1,2); imshow(uint8(img)); title('opt ill');

imwrite(img,filenameout);

 

I was going to code a more flexible version of executable. But I have a life outside digg ;-) you know...

 

Videos [link], slow and not as good as pics due to compression.