资源简介
程序利用了Cat Map来做图像像素位置的置乱,之后再利用Logistic映射来做像素位置的改变。并且还提供计算NPCR与UACI的方法。

代码片段和文件信息
#include “Bitmap.h“
#include “Math.h“
void NPCR()
{
char file1[50]=“D:\\Experiment\\image\\baboon_cipher1.bmp“;
char file2[50]=“D:\\Experiment\\image\\baboon_cipher2.bmp“;
Bitmap *bmp1 = (Bitmap*)malloc(sizeof(Bitmap));
Bitmap *bmp2 = (Bitmap*)malloc(sizeof(Bitmap));
int ij;
int temp=0temp1=0temp2=0temp3=0;
int size=512*512;
double npcr=0npcr1=0npcr2=0npcr3=0;
load_bitmap(file1bmp1);
load_bitmap(file2bmp2);
for(i=0;iheight;i++)
for(j=0;jwidth;j++)
{
if(bmp1->matrix3[0][i][j]!=bmp2->matrix3[0][i][j])
temp1++;
if(bmp1->matrix3[1][i][j]!=bmp2->matrix3[1][i][j])
temp2++;
if(bmp1->matrix3[2][i][j]!=bmp2->matrix3[2][i][j])
temp3++;
if(bmp1->matrix3[0][i][j]!=bmp2->matrix3[0][i][j]||bmp1->matrix3[1][i][j]!=bmp2->matrix3[1][i][j]||bmp1->matrix3[2][i][j]!=bmp2->matrix3[2][i][j])
{
//printf(“ni ma bi\n“);
temp=temp+1;
}
}
npcr=temp*1.0/size;
npcr1=temp1*1.0/size;
npcr2=temp2*1.0/size;
npcr3=temp3*1.0/size;
printf(“The NPCR is %fNPCR1 is%fNPCR2 is%fNPCR3 is%f\n“npcrnpcr1npcr2npcr3);
/* temp=temp1=temp2=temp3=0;
npcr=npcr1=npcr2=npcr3=0;
for(i=bmp1->height/2;iheight;i++)
for(j=0;jwidth;j++)
{
if(bmp1->matrix3[0][i][j]!=bmp2->matrix3[0][i][j])
temp1++;
if(bmp1->matrix3[1][i][j]!=bmp2->matrix3[1][i][j])
temp2++;
if(bmp1->matrix3[2][i][j]!=bmp2->matrix3[2][i][j])
temp3++;
if(bmp1->matrix3[0][i][j]!=bmp2->matrix3[0][i][j]||bmp1->matrix3[1][i][j]!=bmp2->matrix3[1][i][j]||bmp1->matrix3[2][i][j]!=bmp2->matrix3[2][i][j])
{
//printf(“ni ma bi\n“);
temp=temp+1;
}
}
npcr=temp*1.0/size*2;
npcr1=temp1*1.0/size*2;
npcr2=temp2*1.0/size*2;
npcr3=temp3*1.0/size*2;
printf(“The NPCR is %fNPCR1 is%fNPCR2 is%fNPCR3 is%f\n“npcrnpcr1npcr2npcr3);
*/
free_bitmap(bmp1);
free_bitmap(bmp2);
}
void UACI()
{
char file1[50]=“D:\\Experiment\\image\\baboon_cipher1.bmp“;
char file2[50]=“D:\\Experiment\\image\\baboon_cipher2.bmp“;
Bitmap *bmp1 = (Bitmap*)malloc(sizeof(Bitmap));
Bitmap *bmp2 = (Bitmap*)malloc(sizeof(Bitmap));
int ij;
double temp=0temp1=0temp2=0temp3=0;
int size=512*512;
double uaci=0uaci1=0uaci2=0uaci3=0;
load_bitmap(file1bmp1);
load_bitmap(file2bmp2);
for(i=0;iheight;i++){
for(j=0;jwidth;j++)
{
temp1+=abs(bmp1->matrix3[0][i][j]-bmp2->matrix3[0][i][j])*1.0/255;
temp2+=abs(bmp1->matrix3[1][i][j]-bmp2->matrix3[1][i][j])*1.0/255;
temp3+=abs(bmp1->matrix3[2][i][j]-bmp2->matrix3[2][i][j])*1.0/255;
temp+=abs(bmp1->matrix3[0][i][j]*pow(216)+bmp1->matrix3[1][i][j]*pow(28)+bmp1->matrix3[0][i][j]-
bmp2->matrix3[0][i][j]*pow(216)+bmp2->matrix3[1][i][j]*pow(28)+bmp2->matrix3[0][i][j])*1.0/(pow(224)-1);
}
}
printf(“The temp is%f is%f is%f\n“temp1temp2temp3);
uaci=temp*1.0/size;
uaci1=temp1*1.0/size;
uaci2=temp2*1.0/size;
ua
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 39936 2011-07-11 10:03 MyExperiment\Debug\MyExperiment.exe
文件 392924 2011-07-11 10:03 MyExperiment\Debug\MyExperiment.ilk
文件 453632 2011-07-11 10:03 MyExperiment\Debug\MyExperiment.pdb
文件 3111 2011-03-15 08:08 MyExperiment\MyExperiment\analysis.c
文件 1551 2011-03-13 19:13 MyExperiment\MyExperiment\bitMap.h
文件 12370 2011-03-15 08:08 MyExperiment\MyExperiment\Debug\analysis.obj
文件 7122 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\BuildLog.htm
文件 11806 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\encryption.obj
文件 16150 2011-03-13 19:18 MyExperiment\MyExperiment\Debug\Loadimage.obj
文件 7176 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\main.obj
文件 65 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\mt.dep
文件 663 2011-03-13 19:18 MyExperiment\MyExperiment\Debug\MyExperiment.exe.em
文件 728 2011-03-13 19:18 MyExperiment\MyExperiment\Debug\MyExperiment.exe.em
文件 621 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\MyExperiment.exe.intermediate.manifest
文件 60416 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\vc90.idb
文件 61440 2011-07-11 10:03 MyExperiment\MyExperiment\Debug\vc90.pdb
文件 1968 2011-07-11 10:04 MyExperiment\MyExperiment\encryption.c
文件 5887 2011-03-13 19:14 MyExperiment\MyExperiment\Loadimage.c
文件 784 2011-07-11 10:03 MyExperiment\MyExperiment\main.c
文件 4173 2011-03-14 11:03 MyExperiment\MyExperiment\MyExperiment.vcproj
文件 1415 2011-07-11 10:04 MyExperiment\MyExperiment\MyExperiment.vcproj.lenovo-PC.lenovo.user
文件 437248 2011-07-11 10:04 MyExperiment\MyExperiment.ncb
文件 902 2011-03-13 19:11 MyExperiment\MyExperiment.sln
..A..H. 14848 2011-07-11 10:04 MyExperiment\MyExperiment.suo
目录 0 2011-07-11 10:03 MyExperiment\MyExperiment\Debug
目录 0 2011-05-29 18:03 MyExperiment\Debug
目录 0 2011-07-11 10:04 MyExperiment\MyExperiment
目录 0 2011-07-11 10:00 MyExperiment
----------- --------- ---------- ----- ----
1536936 28
............此处省略1个文件信息
- 上一篇:一个空调温度控制系统的程序
- 下一篇:动态生成组织结构树型图
相关资源
- m1卡 ic卡可选择扇区初始化加密软件
- Zprotect专业版(无限制) 一机一码E
- 加密软件漏洞评测系统 V8.9
- C 大整数RSA加密
- [免费]安全加密软件U盘加密,文件加
- 加密cad图形的lisp文件
- 透明加密源码及说明
- Openssl给文件传输加密
- 混沌时间序列分析工具箱
- 3des加解密_C 实现
- ESAM相关文章集合
- RSA AES DES ECC加密算法源码
- 密码学课程设计:DES加密解密算法的
- C 标准文档(已加密)
- 破解QQ空间相册加密查看
- 威盾PHP加密专家——php代码加密软件
- 管家婆加密狗工具dogtools
- 提供几个加密算法的源码
- 非常好用的硬盘加密软件-个人密盘
- 基于89C51计算机锁定加密键盘设计
- U盘防拷贝系统破小孩
- 易语言叮小当动态加密算法源码
- 易语言文本加密成数字源码
- 易语言RC4加密解密源码
- 易语言字节集加密解密对比源码
- 易语言椭圆曲线算法加密文件源码
- 易语言文件分段加密类源码
- 易语言文本加密源码
- 易语言文本加密解密源码
- 易语言TEA加密解密源码
评论
共有 条评论