在matlab中使用randint函数进行图像加密

时间:2013-09-20 08:04:10

标签: matlab encryption random

我正在研究图像加密技术。为了生成密钥,我使用了函数randint

key1=randint(256,256,[0,255]);

现在我将key1保存为png图像以进行解密。但是当我在解密阶段读取它时,key1的内容发生了巨大变化。大部分值都是255.为什么会发生这种情况,将会是什么?可能的解决方案??

它也会产生警告 “警告:这是一个过时的功能,将来可能会被删除。          请改用RANDI。          要禁用此警告,请键入warning('off','comm:obsolete:randint')“

1 个答案:

答案 0 :(得分:1)

randi的输出是双倍的,我认为这导致了问题。来自Matlab help

  

如果A是数据类型为double或single的灰度或RGB彩色图像,则imwrite假定动态范围为[0,1]并自动将数据缩放255,然后将其作为8位值写入文件。

在这种情况下,最简单的方法是使用key1 = uint8(key1);

将key1强制转换为uint8