资源简介

此代码需要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-chaos\ipch\logistic-chaos-c51ecb72\logistic-chaos-61b91383.ipch

    .CA....   3080192  2019-03-28 20:27  logistic-chaos\ipch\logistic-chaos-c51ecb72\logistic-chaos-a1443f45.ipch

    .CA....    196662  2019-03-29 13:49  logistic-chaos\logistic-chaos\lena-discrypt.bmp

    .CA....    196662  2019-03-29 13:49  logistic-chaos\logistic-chaos\lena-encrypt.bmp

    .CA....    196662  2018-05-29 19:27  logistic-chaos\logistic-chaos\lena.bmp

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

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

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

    .CA....      1559  2019-03-28 20:25  logistic-chaos\logistic-chaos\ReadMe.txt

    .CA....       220  2019-03-28 20:25  logistic-chaos\logistic-chaos\stdafx.cpp

    .CA....       234  2019-03-28 20:25  logistic-chaos\logistic-chaos\stdafx.h

    .CA....       236  2019-03-28 20:25  logistic-chaos\logistic-chaos\targetver.h

    .CA....      2283  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.log

    .CA....    264728  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.obj

    .CA....   1638400  2019-03-28 20:28  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.pch

    .CA....      1634  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\cl.command.1.tlog

    .CA....     29192  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\CL.read.1.tlog

    .CA....      1482  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\CL.write.1.tlog

    .CA....      2578  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\link.command.1.tlog

    .CA....      6300  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\link.read.1.tlog

    .CA....       796  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\link.write.1.tlog

    .CA....       188  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\logistic-chaos.lastbuildstate

    .CA....     10518  2019-03-28 20:28  logistic-chaos\logistic-chaos\x64\Debug\stdafx.obj

    .CA....    871424  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\vc120.idb

    .CA....    815104  2019-03-29 13:49  logistic-chaos\logistic-chaos\x64\Debug\vc120.pdb

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

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

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

    .CA....     78848  2019-03-29 13:49  logistic-chaos\x64\Debug\logistic-chaos.exe

    .CA....    595732  2019-03-29 13:49  logistic-chaos\x64\Debug\logistic-chaos.ilk

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

评论

共有 条评论