我正在研究图像加密技术。为了生成密钥,我使用了函数randint
key1=randint(256,256,[0,255]);
现在我将key1保存为png图像以进行解密。但是当我在解密阶段读取它时,key1的内容发生了巨大变化。大部分值都是255.为什么会发生这种情况,将会是什么?可能的解决方案??
它也会产生警告 “警告:这是一个过时的功能,将来可能会被删除。 请改用RANDI。 要禁用此警告,请键入warning('off','comm:obsolete:randint')“
答案 0 :(得分:1)
randi
的输出是双倍的,我认为这导致了问题。来自Matlab help:
如果A是数据类型为double或single的灰度或RGB彩色图像,则imwrite假定动态范围为[0,1]并自动将数据缩放255,然后将其作为8位值写入文件。
在这种情况下,最简单的方法是使用key1 = uint8(key1);