Hidden messages within the noise...
1) The LSB of the first line of pixels contains a code of random binary data.
2) This code can be used to calculate a cross-correlation value with the LSBs of the next lines of pixels.
3) The deviation of the xcorr value from the mean determines whether the line contained 1 or 0 (information is noisy with only approx. 15% of the bits transmitted).
This technique shares some similarities with the way the GPS transmits information with poor SNR.
pic = imread('/home/plahteen/code.png');
[a b c] = size(pic);
% extract the correlation code
code = double(mod(pic(1,1:b,1), 2)) - 0.5;
% calculate xcorr with LSB and code
for x=1:a-1
co = double(mod(pic(1+x,1:b,1),2)) - 0.5;
X(x) = dot(co, code);
end
code = double(mod(pic(1,1:b,1), 2)) - 0.5;
% calculate xcorr with LSB and code
for x=1:a-1
co = double(mod(pic(1+x,1:b,1),2)) - 0.5;
X(x) = dot(co, code);
end
% convert signal into binary
X = X>mean(double(X));
% decode
sprintf(char(bin2dec(vec2mat(sprintf('%d', double(X)), 7))))
ans =
My attempt to reciprocate is cut brutally short as my body experiences a sudden lack of electrons.
No comments:
Post a Comment