#matlab #rgb
#matlab #rgb
Вопрос:
я написал этот код для искажения изображения, он работает хорошо, но возникла проблема с восстановлением этого искаженного изображения, запустив этот же код снова
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:
Метод XOR преобразует каждое значение в кодировку предыдущего значения. Таким образом, обратная функция не совсем совпадает с функцией кодирования. Вы должны переключить присвоение v на закодированное значение, таким образом
img2(row,col,k)=bitxor(pic(row,col,k),v);
v=pic(row,col,k);
для метода декодирования.