LSB steganography : i can't extract the original messages

조회 수: 4 (최근 30일)
ARJUN K P
ARJUN K P 2015년 5월 16일
댓글: Walter Roberson 2015년 5월 17일
the code is:
embedding code:
c = imread('lena.jpg');
message = 'hellokarthick';
message = strtrim(message);
m = length(message) * 8;
AsciiCode = uint8(message);
binaryString = transpose(dec2bin(AsciiCode,8));
binaryString = binaryString(:);
N = length(binaryString);
b = zeros(N,1); %b is a vector of bits
for k = 1:N
if(binaryString(k) == '1')
b(k) = 1;
else
b(k) = 0;
end
end
s = c;
height = size(c,1);
width = size(c,2);
k = 1;
for i = 1 : height
for j = 1 : width
LSB = mod(double(c(i,j)), 2);
if (k>m || LSB == b(k))
s(i,j) = c(i,j);
else
s(i,j) = c(i,j) + b(k);
k = k + 1;
end
end
end
imwrite(s, '111.jpg');
Extraction:
for i = 1 : height
for j = 1 : width
if (k <= m)
b(k) = mod(double(s(i,j)),2);
k = k + 1;
end
end
end
binaryVector = b;
binValues = [ 128 64 32 16 8 4 2 1 ];
binaryVector = binaryVector(:);
if mod(length(binaryVector),8) ~= 0
error('Length of binary vector must be a multiple of 8.');
end
binMatrix = reshape(binaryVector,8,100);
display(binMatrix);
textString = char(binValues*binMatrix);
disp(textString);
The output is:

답변 (1개)

Geoff Hayes
Geoff Hayes 2015년 5월 16일
Arjun - I suspect the problem is with the line
imwrite(s, '111.jpg');
You are saving s, the image with the secret message, as a jpeg which is a lossy compression method. This means that you are most likely losing information when you save s in this manner. You can prove this by comparing s with that data which is returned by
sp = imread('111.jpg');
s and sp are most likely not identical and so the LSB extraction method (from above) will fail.
I think that you can do one of two things - save the image as bitmap or set the compression to none as
imwrite(s,'111.jpg','Compression','none');
Try the above and see what happens!
  댓글 수: 4
ARJUN K P
ARJUN K P 2015년 5월 17일
i also try with .bmp format... i extracted text is unreadable...
Walter Roberson
Walter Roberson 2015년 5월 17일
Use 'mode', 'lossless' on the imwrite() instead of 'Compression', 'none'.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by