基于logistics映射的图像加密-VS


此代码需要VS实现完成opencv300的环境配置。下载了opencv3.00版后记得在属性管理器中添加现有的属性表。
资源截图
代码片段和文件信息
// logistic-chaos.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include 
#include   
#include   
#include   

using namespace std;
using namespace cv;

double u = 3.99;//控制参数
double x = 0.501;//x的初始值
int key[600000][3] = { 0 };//密钥


int _tmain(int argc _TCHAR* argv[])
{
/************************************************************/
Mat img1 = imread(“lena.bmp“);//读取图像
if (img1.empty())//读取失败
{
cout << “读取图像失败“;
return -1;
}
imshow(“lena原始图片“ img1);//显示原始图像
/************************************************************/

/************************************************************/
IplImage *img2 = cvLoadImage(“lena.bmp“ 1);//加载原始图像以读取像素值
CvScalar s;
//typedef struct CvScalar{double val[4];} CvScalar;
//通常用的是前三个,val[0]val[1]val[2]的含义分别是图像的三个通道RGB通道:R是红色分量,G是绿色分量,B是蓝色分量。
cvNamedWindow(“lena加密图片“ 1);//创建一个新窗口用于显示图片
double y = 0;
int temp = 0;
int num = 0;

for (int i = 0; i < img2->height; i++)//图片的高度
{
for (int j = 0; j < img2->width; j++)//图片的宽度
{
s = cvGet2D(img2 i j);//获取图像中坐标(ij)的像素值

/**************************/
//此处添加额外代码实现图像的加密,即实现s的置乱
for (num= 0; num < 3; num++)
{
x= u*x*(1 - x);
key[temp][num]=x*256;
s.val[num] = (int)s.val[num] ^ key[temp][num];
}
temp++;
/**************************/
cvSet2D(img2 i j s);//设置图像中坐标(ij)被置乱后的像素值  
}
}
cvShowImage(“lena加密图片“ img2);//显示加密图像
cvSaveImage(“lena-encrypt.bmp“ img2);//保存加密图像到工程目录下
/************************************************************/
Sleep(1000);//延迟1秒已保证加密图像的顺利保存
/************************************************************/
IplImage *img3 = cvLoadImage(“lena-encrypt.bmp“ 1);//加载加密图像以读取像素值
cvNamedWindow(“lena解密图片“ 1);//创建一个新窗口显示解密图像

/**************************/
//此处添加额外代码实现加密图像baby-encrypt.bmp的解密
temp = 0;
for (int i = 0; i < img3->height; i++)//图片的高度
{
for (int j = 0; j < img3->width; j++)//图片的宽度
{
s = cvGet2D(img3 i j);//获取图像中坐标(ij)的像素值
for (num = 0; num < 3; num++)
{
s.val[num] = (int)s.val[num] ^ key[temp][num];
}
temp++;
cvSet2D(img3 i j s);//设置图像中坐标(ij)被置乱后的像素值  
}
}

/**************************/

cvShowImage(“lena解密图片“ img3);//显示解密图像
cvSaveImage(“lena-discrypt.bmp“ img3);//保存解密图像到工程目录下
/************************************************************/
Sleep(1000);//延迟1秒已保证解密图像的顺利保存

cvWaitKey(0); //等待按键  

cvDestroyWindow(“lena原始图片“);//销毁窗口   
cvDestroyWindow(“lena加密图片“);//销毁窗口 
cvDestroyWindow(“lena解密图片“);//销毁窗口

return 0;

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .CA....   3014656  2019-03-29 13:49  logistic-chaosipchlogistic-chaos-c51ecb72logistic-chaos-61b91383.ipch

    .CA....   3080192  2019-03-28 20:27  logistic-chaosipchlogistic-chaos-c51ecb72logistic-chaos-a1443f45.ipch

    .CA....    196662  2019-03-29 13:49  logistic-chaoslogistic-chaoslena-discrypt.bmp

    .CA....    196662  2019-03-29 13:49  logistic-chaoslogistic-chaoslena-encrypt.bmp

    .CA....    196662  2018-05-29 19:27  logistic-chaoslogistic-chaoslena.bmp

    .CA....      3017  2019-03-28 20:34  logistic-chaoslogistic-chaoslogistic-chaos.cpp

    .CA....      8225  2019-03-28 20:28  logistic-chaoslogistic-chaoslogistic-chaos.vcxproj

    .CA....      1321  2019-03-28 20:25  logistic-chaoslogistic-chaoslogistic-chaos.vcxproj.filters

    .CA....      1559  2019-03-28 20:25  logistic-chaoslogistic-chaosReadMe.txt

    .CA....       220  2019-03-28 20:25  logistic-chaoslogistic-chaosstdafx.cpp

    .CA....       234  2019-03-28 20:25  logistic-chaoslogistic-chaosstdafx.h

    .CA....       236  2019-03-28 20:25  logistic-chaoslogistic-chaos argetver.h

    .CA....      2283  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.log

    .CA....    264728  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.obj

    .CA....   1638400  2019-03-28 20:28  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.pch

    .CA....      1634  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tlogcl.command.1.tlog

    .CA....     29192  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tlogCL.read.1.tlog

    .CA....      1482  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tlogCL.write.1.tlog

    .CA....      2578  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tloglink.command.1.tlog

    .CA....      6300  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tloglink.read.1.tlog

    .CA....       796  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tloglink.write.1.tlog

    .CA....       188  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tloglogistic-chaos.lastbuildstate

    .CA....     10518  2019-03-28 20:28  logistic-chaoslogistic-chaosx64Debugstdafx.obj

    .CA....    871424  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debugvc120.idb

    .CA....    815104  2019-03-29 13:49  logistic-chaoslogistic-chaosx64Debugvc120.pdb

    .CA....  39190528  2019-03-29 14:02  logistic-chaoslogistic-chaos.sdf

    .CA....      1342  2019-03-28 20:28  logistic-chaoslogistic-chaos.sln

    .CA..H.     18944  2019-03-29 14:02  logistic-chaoslogistic-chaos.v12.suo

    .CA....     78848  2019-03-29 13:49  logistic-chaosx64Debuglogistic-chaos.exe

    .CA....    595732  2019-03-29 13:49  logistic-chaosx64Debuglogistic-chaos.ilk

............此处省略13个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)