資源簡介
此代碼需要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?height;?i++)//圖片的高度
{
for?(int?j?=?0;?j?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?height;?i++)//圖片的高度
{
for?(int?j?=?0;?j?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\li
????.CA....??????6300??2019-03-29?13:49??logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\li
????.CA....???????796??2019-03-29?13:49??logistic-chaos\logistic-chaos\x64\Debug\logistic-chaos.tlog\li
????.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個文件信息
評論
共有 條評論