Восстановить искаженное изображение - PullRequest
0 голосов
/ 10 апреля 2011

Я написал этот код для искажения изображения, он работает хорошо, но есть проблема с восстановлением этого искаженного изображения, снова запускающего этот код

pic=imread('pepers.png');
[imr,imc,clr]=size(pic);
img2=pic;

v=66;
for row=1:imr

    for col=1:imc
        for k=1:clr

            img2(row,col,k)=bitxor(pic(row,col,k),v);
            v=img2(row,col,k);
        end
    end
end


imwrite(img2,'pic2.png');
imshow(img2);

1 Ответ

1 голос
/ 10 апреля 2011

Метод XOR объединяет каждое значение с кодировкой предыдущего значения.Таким образом, обратное не совсем то же самое, что и функция кодирования.Вы должны переключить присваивание v кодированному значению, таким образом

img2(row,col,k)=bitxor(pic(row,col,k),v);
v=pic(row,col,k);

для метода декодирования.

...