Итак, вот что я пытался сделать. Я абсолютно не знаком с Matlab. Это был только день или около того, что я использовал его, и вот что-то, что мой учитель попросил меня сделать. Встраивание операторов или группы строк в изображение с использованием алгоритма LSB. Строка должна быть прочитана из файла. На данный момент я не использовал никаких операций с файлами. Я пытаюсь использовать один символ, и я не знаю, что случилось. Алгоритм кажется простым, но мой вывод i.e, как обложка, так и steg пикселей показывают одинаковое значение. :(Вложение символа в изображение
cover=imread('D:\l.jpg');
steg=cover;
l=1;
LSB=0;
height = size (cover, 1);
width = size (cover, 2);
message = 'J' ;
mdec = uint8(message);
mbin = dec2bin(mdec, 8);
mbins= mbin(:);
len=length(mbins);
for i = 1:height
for j = 1:width
if(l<=len)
LSB = mod(cover(i,j), 2);
if(mbins(l)==LSB)
steg(i,j) = cover(i,j);
else if (mbins(l)~=LSB && LSB==1 && mbins(l)==0)
steg(i,j) = cover(i,j)-1;
else if (mbins(l)~=LSB && LSB==0 && mbins(l)==1)
steg(i,j) = cover(i,j)+1;
end
end
end
l=l+1;
end
end
end
imwrite(steg,'D:\hidden.jpg');
%imshow(steg)
cover(1, 1:8)
steg(1, 1:8)
Благодарим за внимание. Мне кажется, что я понимаю, что пошло не так в первой части. Мне нужно было вычесть значение ascii из каждого из элементов двоичного массива, чтобы получить желаемое значение. Это 0 или 1. dec2bin (uint8 ('J')) предоставляет мне массив, который по сути является строкой , но это то, чего я не хочу. Мне нужны точные значения каждого из элементов массива, так что их числовое значение равно 0 или 1. а не что-нибудь еще. Наверное, это то, что вы хотите сказать? – Xavier
@ Xavier - вы поняли это правильно. это то, что я пытался объяснить в первой части моего ответа. Я считаю, что внесение этой поправки в ваш код заставит ее работать, но я настоятельно рекомендую вам изучить вторую часть, а также более «Matlab» -ish-подход, чем вложенный цикл. – Shai
Да. Думаю, я понимаю вторую часть алгоритма. Это делает вещи намного проще. Я попробовал использовать матрицу 3 x 3, чтобы очистить вещи, и я понимаю, как это работает. Большое спасибо! – Xavier