图像加密 UACI计算 MATLAB程序
时间: 2023-12-02 07:02:42 浏览: 106
以下是一个基于MATLAB的图像加密程序,其中包含了UACI的计算。
```matlab
% 图像加密 UACI计算 MATLAB程序
% 加载待加密的图像
img = imread('lena.png');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 生成随机密钥
key = randi([0 1], size(img_gray));
% 对图像进行加密
img_encrypted = bitxor(img_gray, key);
% 对加密后的图像进行解密
img_decrypted = bitxor(img_encrypted, key);
% 计算UACI
uaci = sum(sum(abs(double(img_gray) - double(img_decrypted)))) / (size(img_gray,1) * size(img_gray,2) * 255);
% 显示结果
subplot(2,2,1);
imshow(img_gray);
title('原始图像');
subplot(2,2,2);
imshow(key);
title('密钥');
subplot(2,2,3);
imshow(img_encrypted);
title('加密后的图像');
subplot(2,2,4);
imshow(img_decrypted);
title('解密后的图像');
fprintf('UACI = %f\n', uaci);
```
该程序首先加载了待加密的图像,然后将其转换为灰度图像。接着生成了一个与原图像大小相同的随机密钥,并使用异或运算对原图像进行加密。之后再使用相同的密钥对加密后的图像进行解密。最后,计算了UACI并将加密前后的图像和密钥进行显示。
阅读全文