此代码需要VS实现完成opencv300的环境配置。下载了opencv3.00版后记得在属性管理器中添加现有的属性表。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.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个文件信息
// 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.tlogli
.CA.... 6300 2019-03-29 13:49 logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tlogli
.CA.... 796 2019-03-29 13:49 logistic-chaoslogistic-chaosx64Debuglogistic-chaos.tlogli
.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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)