当前位置:文档之家› 图像文件中嵌入隐藏的文字信息

图像文件中嵌入隐藏的文字信息

图像文件中嵌入隐藏的文字信息
图像文件中嵌入隐藏的文字信息

工程实训任务书

图像文件中的信息隐藏

[任务目标]

用C语言设计一个程序,实现在一个图像文件(.BMP)中嵌入隐藏的文字信息。通过另一个软件,可以将图像中隐藏的信息提取出来。要求嵌入信息后不影响图片的视觉效果。

[性能指标]

1、图片是标准的24位色BMP文件

2、通过键盘输入要嵌入到文字信息,并嵌入到图像文件中

3、编写一个提取程序,提取出隐藏的文字。

软件代码:

#include

#include

#include

#include

void writef(unsigned char a[],unsigned char tu[],int tu_l);

void readf(int n,unsigned char tu[],int tu_l);

//向图片写入文字信息的函数入口

void writein(){

FILE* fp;

char name[22];

long L;

unsigned char* f;

unsigned char file[202];

printf("请输入文件的路径:\n");

cin.getline(name,20);

if(!(fp=fopen(name,"rb"))){

printf("file can not be found.");

exit(0);

}

else

{

fseek(fp,0,2);L=ftell(fp); //查询图片长度

f=(unsigned char*)malloc(L);

rewind(fp);

fread(f,L,1,fp); //读取出未添加文字的图片

fclose(fp);

}

printf("请输入隐藏的信息:");

cin.getline(file,200);

writef(file,f,L); //开始隐藏文字

printf("文件保存完毕!\n路径为e:\\abc.bmp\n");

}

void writef(unsigned char a[],unsigned char tu[],int tu_l){

FILE* fp;

unsigned char t;

int i,j,k;

i=0;

while(a[i]!='\0') i++; //获取输入的文字长度

printf("信息的长度为:%d\n",i);

for(j=64;j<(64+i*8);j++) tu[j]=tu[j]&0xFE; //对图片存入文字的区域初始化,将每位颜色的二进制代码最后一位变为零

for(j=0;j

for(k=0;k<8;k++){

t=a[j]&0x01; //将文字转化成二进制信息,并开始隐藏如图片

tu[64+j*8+k] |=t;

a[j]=a[j]>>1; //逐位获取文字的二进制代码

}

}

if(!(fp=fopen("e:\\abc.bmp","wb"))){

printf("file can't be built.\n");

exit(0);

}else{

fwrite(tu,tu_l,1,fp); //将处理后的文件保存

fclose(fp);

}

}

//从图片提取隐藏的文字信息的函数入口

void readout(){

FILE* fp;

char name[22];

long L;

unsigned char* f;

int n;

printf("请输入隐藏着文字信息的图片的路径:\n");

cin.getline(name,20);

if(!(fp=fopen(name,"rb"))){

printf("file can not be found.\n");

exit(0);

}else{

fseek(fp,0,2);L=ftell(fp); //获取文件长度

f=(unsigned char*)malloc(L);

rewind(fp);

fread(f,L,1,fp); //读取文件

fclose(fp);

}

printf("请输入隐藏的文字长度:\n");

scanf("%d",&n); //该程序无法自动获取图片中隐藏的文字的长度,因此需要用户自己输入

readf(n,f,L);

}

void readf(int n,unsigned char tu[],int tu_l){

FILE* fp;

unsigned char t,c;

unsigned char a[100]; //由于不知道图片中的文字长度,用于存储文字的数组需要大一点的空间

int j,k;

for(j=0;j

a[j]&=0x00; //数组初始化

for(k=0;k<8;k++){

t=tu[64+j*8+k];

t=t&0x01; //提取文字信息

a[j]|=t;

c=a[j];

a[j]=(c>>1)|(c<<7); //循环右移,逐个插入文字的二进制信息

}

}

a[n]='\0'; //文字提取完毕,在结尾添加结束符

if(!(fp=fopen("e:\\words.dat","wb"))){

printf("file can't be built.\n");

exit(0);

}

else

{

fwrite(a,n,1,fp); //保存文字的二进制信息

fclose(fp);

}

printf("隐藏的文字为:\n");

for(j=0;j

cout<

printf("文字的二进制信息以保存,路径为:e:\\words.dat\n");

}

void getout(unsigned char* p){}

// 菜单操作函数

int menu_select(){

char s;

int cn;

//显示提示菜单

printf(" |---------------------------------------|\n");

printf(" | 操作菜单:|\n");

printf(" | |\n");

printf(" | 1.向图片写入文字信息|\n");

printf(" | 2.从bmp图片读出隐藏的文字信息|\n");

printf(" | 3.退出程序。|\n");

printf(" | |\n");

printf(" |---------------------------------------|\n");

printf("您希望进行什么操作?请输入序号:\n");

do{

s=getchar();

cn=(int)s-48;

}while(cn<0||cn>3); //忽略选项以外的字符输入

return cn;

}

void main(){

while(1){ //让程序一直运行,直到用户选择退出

switch(menu_select()){

case 1:

writein(); //文字隐藏

break;

case 2:

readout(); //文字提取

break;

case 3:

cout<<"程序已退出。"<

exit(0);

}

}

}

运行结果:

1、为什么做?

因为随着信息技术,网络技术,电子商务的发展,网络安全将全方位的威胁社会的经济文化,政治等方面,随着计算机硬件的发展,具有并行计算能力的破解技术日益发展成熟,仅通过增加加密算法的密钥长度来达到增强安全性已不再是唯一的可行办法,但对信息隐藏而言,可能的检测者和非法拦截者则难以从公开信息中判断机密信心是否存在,难以截获机密信息。同时锻炼我们的实训能力,

以及对c语言的掌握。

2,、做什么?

答将密码编码学和信息隐藏技术结合,通过人的视觉冗余来实现对24位位图图片文件的信息隐藏和还原。

3,、准备怎么做?

我们先准备好一幅24位的BMP格式图片,这一点要注意,不要误用了其他格式的图片。然后点击界面工具栏上那个“打开”按钮找到那幅准备好的BMP 图片,该BMP图片会被加载到带有菜单和工具栏的程序主界面中,其功能一目了然。因为工具栏集成了该软件的主要功能,所以我们在加、解密文件时,只要使用工具栏就可以了。如果你想隐藏文件,只需点击工具栏上的“隐藏”按钮。文件加密完成后,就会出现一个“另存为”窗口,让你选择文件保存路径。别忘记将加密后的图片保存在自己指定的文件夹里。

4、具体步骤:

先在代码中写上自己的头文件,自己将会用到哪些关于头文件的函数等,file fp必须写在其文件中,其次向图片写入文字信息的函数入口,此时要用到void written,另外还有unsigned的固定用法和char这个数组函数,然后输出换行,如果使用文件方式打开文件名,则显示file can not be found,相反则使用fseek查询图片bmp的长度。

使用malloc动态分布函数读取出未添加文字的图片,并输入嵌入的文字,保存文件的路径,同样在使用未定义的字符void writef,对图片存入文字的区域初始化,将每位颜色的二进制代码最后一位变为零,在进行一个for循环,对图片存入文字的区域初始化,将每位颜色的二进制代码最后一位变为零,将文字转化成二进制信息,并开始隐藏如图片,并逐位获取文字的二进制代码,查询图片长度,并且由于不知道图片中的文字长度,用于存储文字的数组需要大一点的空间,将/数组初始化。循环右移,逐个插入文字的二进制信息。

总的来说,就是找到解决任务的方法,编写出代码,找出问题,修改问题。

5、发现问题?

程序在V6C++中运行时出现大量的错误,由报错一点一点去找错,并且加以修改。

6、改进的地方?

需要了解更多C语言的运用知识,不能弄混每个语句的作用。

7、有何感想?

在制作中能发现很多自己编程上的不足,能学到很多不一样的东西,一些在书本上没有学过,需要私下自己去探索总结的一些知识,比如信息隐藏技术需要涉及到哪方面的专业知识,需要运用哪些方面的函数,哪些方面的头文件,甚至在很多报错方面有时候也会花很大的功夫,真的知道编程时一项辛苦复杂但是成功后又充满很多快乐的一项任务,实训却在不知不觉中锻炼了我们各个方面的能力。

lsb信息隐藏

LSB算法的信息隐藏实验 单位:三系一队 姓名:马波 学号:3222008030

LSB信息隐藏实验 一、实验目的 1.掌握LSB算法原理 2.熟悉信息隐藏与提取的流程 3.锻炼算法的程序实现能力 二、实验原理 1.信息隐藏 用秘密信息比特替换载体中的最不重要部分,可以达到对信息隐藏的目的。在数字图像中,每个字节的最低位对图像信息的影响最 小,因此将数字图像的最低位用信息比特替换可以实现信息隐藏。由 于载体图像的每个字节只隐藏一个秘密信息比特,所以只有当载体图 像的大小是秘密信息大小的8倍以上时才能完整的将秘密信息隐藏。 提取信息位并隐藏的示意图: 2.信息提取

在隐藏了秘密信息的数字图像中,每个字节的最低位就是秘密信息比 特位,只需将这些信息比特提取出来并组合,就可以恢复出原来的秘 密信息。 提取信息示意图: 三、实验内容 A.将秘密信息隐藏在载体的最低位,检验算法的鲁棒性 (1)读入秘密信息(此实验中秘密信息为二值图像) (2)把秘密信息的比特位放入载体的最低位 (3)给隐藏了秘密信息的图像加入大小为1的噪声

加入噪声大小为1时: 加入噪声为2时:

B.将秘密信息隐藏在载体的最高位,检验算法的鲁棒性 (1)读入秘密信息(此实验中秘密信息为二值图像) (2)把秘密信息的比特位隐藏在载体的最高位 (3)分别给隐藏了秘密信息的图像加入大小为1和2的噪声

C.将秘密信息隐藏在载体的第三位,检验算法的鲁棒性 (1)同A中的(1) (2)把秘密信息比特位隐藏在载体的第三位 (3)分别给隐藏了秘密信息的图片加入大小为1、2和3的噪声

基于LSB算法的图像信息隐藏与检测

数字图像隐写分析 基于LSB算法的图像信息隐藏与检测 学院名称计算机科学与技术学院 专业班级 学生姓名 学号 指导教师 2016.05.01 基于LSB算法的图像信息隐藏与检测 摘要:LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。文章首先简

单叙述了BMP位图文件的文件格式,然后根据24位真彩色BMP位图格式与显示方式的特殊性,直接改变图像中像素的最后一位值来嵌入秘密文件,提出了一种对文字信息进行加密的有效方案。 关键词:LSB,信息隐藏,信息安全,BMP位图 Image information hiding and detection based on LSB algorithm

Abstract: LSB replacement steganography basic idea is to use the embedded secret information to replace the image of the lowest bits, the original 7 high plane and the least significant bit plane of alternative secret information into new graphics containing hidden information.This paper simple describes the BMP file format of the bitmap file, and then according to the 24 true color BMP bitmap format and the particularity of display mode, directly change the values of pixels in the image of the last to embed secret files, puts forward a effective scheme of text information is encrypted. Key words: LSB, Information hiding,information security,bit map file 目录 第1章绪论 (5)

最新图像信息隐藏技术与设计 大学毕业设计

1 前言 本章主要介绍信息隐藏技术的背景和研究意义、国内外信息隐藏技术研究现状,列举了本文的主要研究内容,最后给出了全文的结构安排。 1.1 信息隐藏技术的背景和研究意义 二十世纪九十年代以来,网络信息技术在全世界范围内得到了迅猛发展,它极大地方便了人们之间的通信和交流。借助于计算机网络所提供的强大的多媒体通信功能,人们可以方便、快速地将数字信息(数字音乐、图像、影视等方面的作品)传到世界各地,一份电子邮件可以在瞬息问传遍全球。但同时计算机网络也成为犯罪集团、非法组织和有恶意的个人利用的工具。从恶意传播计算机病毒,到非法入侵要害部门信息系统,窃取重要机密甚至使系统瘫痪;从计算机金融犯罪,到利用表面无害的多媒体资料传递隐蔽的有害信息等等,对计算机信息系统进行恶意攻击的手段可谓层出不穷。 因此,在全球联网的形势下,网络信息安全非常重要,一个国家信息系统的失控和崩溃将导致整个国家经济瘫痪,进而影响到国家安全。各国政府和信息产业部门都非常重视网络信息安全的研究和应用。密码技术是信息安全技术领域的主要传统技术之一,是基于香农信息论及其密码学理论的技术,一般采用将明文加密成密文的秘密密钥系统或者公开密钥系统,其保护方式都是控制文件的存取,即将文件加密成密文,使非法用户不能解读。但加密技术主要适用于文本的加密,而对音频、视频、图像等多媒体数据类型来说,由于它们的数据量往往很大,如何对超大数据量的多媒体数据进行有效的加、解密仍是一个难题。而且信息加密是利用随机性来对抗密码攻击的,密文的随机性同时也暴露了消息的重要性,即使密码的强度足以使攻击者无法破解出明文,但他仍有足够的手段来对其进行破坏,使得合法的接收者也无法阅读信息内容。随着计算机性能的大幅度提高,软硬件技术的迅速发展,加密算法的安全性受到了严重挑战。 由于加密技术的局限性,最近十几年以来,一种新的信息安全技术——信息隐藏技术(Information Hiding)迅速地发展起来。信息隐藏的渊源可以追溯到古希

信息隐藏 实验四 二值图像信息隐藏

实验四二值图像信息隐藏 一、实验目的 了解二值图像的特点,掌握基于二值图像的信息隐藏原理,读懂两种基于二值图像的信息隐藏方法,并自己设计另一种二值信息隐藏的方法。 二,实验环境 (1)Windows XP操作系统; (2)MATLAB 7.2版本软件; (3)二值图像文件。 三、实验原理 二值图像又称为单色图像或黑白图像,一般用1或0表示黑色或白色像素点,利用二值图像信息隐藏的方法主要是根据图像中黑白像素数量的比较来隐藏信息。 方法一:把一个二值图像分成一系列矩形图像区域B,某个图像区域B中黑色像素的个数大于一半,则表示嵌入0;如果白色像素的个数大于一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 方法二:采用游程编码方法在二值图像中隐藏信息。秘密信息嵌入时修改二值图像的游程长度,如果秘密信息位是0,则修改该游程长度为偶数;如果为1,则修改游程长度为奇数;如果秘密信息的取值与游程长度的奇偶性相匹配,则不改变游程长度。 方法三:将二值图像分块,使用一个与图像块大小相同的密钥二值图像块,与每一个图像块按像素进行“与”运算,“与”运算的结果可以确定是否在该块中嵌入数据,或嵌入怎样的数据。 四,实验步骤 下面以方法三为原理,进行实验。 1.嵌入秘密信息 主要思想:首先将载体图像分块,块数为秘密信息的二进制码个数,分块大小为载体图像的长和宽分别除以块数;设定一个与图像块大小相同的密钥二值图

像块,具体为一个8×8的数组,其中前4行全为1,后4行全为0;将载体图像块与密钥二值图像块进行“与”运算。经过运算后,参与统计的像素变为前4行。接下来统计“有效”像素黑白的个数,某个图像区域B中黑色像素的个数大于“有效”像素一半,则表示嵌入0;如果白色像素的个数大于“有效”像素一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 Matlab代码如下: msgfid=fopen('hidden.txt','r');%打开秘密文件 [msg,count]=fread(msgfid); fclose(msgfid); msg = str2bit(msg); msg = msg'; count=count*8; io=imread('hunter.bmp');%读入载体图像 watermarklen=count;%嵌入水印信息长度,也就是载体图像分块的数量值 [row col]=size(io); l1=floor(row/watermarklen);%载体图像分块后的长度 l2=floor(col/watermarklen);%载体图像分块后的宽度 pixelcount=l1*l2;%每个分块总像素的数量值 miyue=[ones(6,8);zeros(2,8)];%密钥二值图像块 percent=24; iw=io; in=io;%存放与运算后的图像信息 %将原图像块与密钥块进行与运算 m=1; while m<=watermarklen i=1; j=1; in(i:(i+l1-1),j:(j+l2-1))=io(i:(i+l1-1),j:(j+l2-1)) & miyue; i=i+8; j=j+8; m=m+1; end inblack(1,watermarklen)=0;%某一个分块中黑色像素的个数 inwhite(1,watermarklen)=0;%某一个分块中白色像素的个数 n=1; while n<=watermarklen for i=l1*(n-1)+1:(l1*n-2) %只计算有效前4行的黑白个数

图像文件中嵌入隐藏的文字信息

工程实训任务书 图像文件中的信息隐藏 [任务目标] 用C语言设计一个程序,实现在一个图像文件(.BMP)中嵌入隐藏的文字信息。通过另一个软件,可以将图像中隐藏的信息提取出来。要求嵌入信息后不影响图片的视觉效果。 [性能指标] 1、图片是标准的24位色BMP文件 2、通过键盘输入要嵌入到文字信息,并嵌入到图像文件中 3、编写一个提取程序,提取出隐藏的文字。 软件代码: #include #include #include #include void writef(unsigned char a[],unsigned char tu[],int tu_l); void readf(int n,unsigned char tu[],int tu_l); //向图片写入文字信息的函数入口 void writein(){ FILE* fp; char name[22]; long L; unsigned char* f; unsigned char file[202]; printf("请输入文件的路径:\n"); cin.getline(name,20);

if(!(fp=fopen(name,"rb"))){ printf("file can not be found."); exit(0); } else { fseek(fp,0,2);L=ftell(fp); //查询图片长度 f=(unsigned char*)malloc(L); rewind(fp); fread(f,L,1,fp); //读取出未添加文字的图片 fclose(fp); } printf("请输入隐藏的信息:"); cin.getline(file,200); writef(file,f,L); //开始隐藏文字 printf("文件保存完毕!\n路径为e:\\abc.bmp\n"); } void writef(unsigned char a[],unsigned char tu[],int tu_l){ FILE* fp; unsigned char t; int i,j,k; i=0; while(a[i]!='\0') i++; //获取输入的文字长度 printf("信息的长度为:%d\n",i); for(j=64;j<(64+i*8);j++) tu[j]=tu[j]&0xFE; //对图片存入文字的区域初始化,将每位颜色的二进制代码最后一位变为零 for(j=0;j>1; //逐位获取文字的二进制代码 } } if(!(fp=fopen("e:\\abc.bmp","wb"))){ printf("file can't be built.\n"); exit(0); }else{ fwrite(tu,tu_l,1,fp); //将处理后的文件保存 fclose(fp); } }

信息隐藏技术教学大纲-武汉大学课程中心

信息隐藏技术教学大纲 课程代码:08 课程负责人:王丽娜 课程中文名称:信息隐藏技术 课程英文名称:Information Hiding Technology 课程类别:选修 课程学分数:2 课程学时数:36 授课对象:信息安全及相关专业本科 本课程的前导课程:高级语言程序设计、信息安全数学基础、通信原理 本课程的后续课程: 一、教学目的 本课程是信息安全专业的专业课。开设本课程的目的是使学生了解并掌握信息隐藏所涉及的基本理论和方法,具备信息隐藏和数字水印的基本能力。 二、教学要求 主要内容: 1、信息隐藏技术概论 2、隐秘技术与分析 3、数字图像水印原理与技术 4、基于混沌特性的小波数字水印算法C-SVD 5、一种基于混沌和细胞自动机的数字水印结构 6、数字指纹 7、数字水印的攻击方法、策略 8、数字水印的评价理论和测试基准 9、数字水印应用协议 10、软件水印 11、数字权益管理 基本要求: 通过对本课程的学习,对信息隐藏和数字水印所涉及的基本理论和方法有初步了解,熟悉和掌握几种主要的信息隐藏和数字水印方法与技术。 学时分配:

20学时。 有实验,另出 三、教材及主要教学参考用书 1、《信息隐藏技术与应用》,王丽娜、张焕国,武汉大学出版社,2006.8。 2、《信息隐藏技术——方法和应用》,汪小帆、戴跃伟、茅耀斌机械出版社,2001年(第1版)。 3、吴秋新等译,Stefan Katzenbeisser, Fabien A.P. Petitcolas Information Hiding Techniques for Steganography and Digital Watermarking,2001年9月(第1版)。 4、《信息隐藏技术及应用》,刘振华、尹萍编,科学出版社,2002年2月(第1版)。 大纲执笔者:王丽娜 大纲审定者:

数字图像处理报告 图像二值化

数字图像处理实验报告 实验二灰度变换 实验目的:通过实验掌握灰度变换的基本概念和方法 实验内容: 掌握基本的灰度变换:图像反转、对数变换、幂次变换和二值化1.图像反转、对数变换、幂次变换 I=imread('fengjing.jpg'); J=im2double(I); subplot(2,3,1),imshow(J); title('原图'); K=255-I; subplot(2,3,2),imshow(K); title('图象反转'); L=3.*log(1+J); subplot(2,3,3),imshow(L);title('图象对数,系数为3'); M=10.*log(1+J); subplot(2,3,4),imshow(M);title('图象对数,系数为10'); N=10.*(J.^0.2); subplot(2,3,5),imshow(N);title('图象指数变换,γ=0.2'); P=10.*(J.^2.5); subplot(2,3,6),imshow(P);title('图象指数变换,γ=2.5'); 2.图象二值化 方法一:

I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); [m,n]=size(I); for i=1:m for j=1:n if I(i,j)<128 I(i,j)=0; else I(i,j)>=128 & I(i,j)<256 I(i,j)=255; end end end subplot(1,2,2),imshow(I);title('图象二值化');方法二: I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); J=find(I<128); I(J)=0; J=find(I>=128); I(J)=255; title('图像二值化(阈值为128)'); subplot(1,2,2),imshow(I);title('图象二值化');

图像二值化算法研究与实现

图像二值化算法研究与实现 摘要:图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对VC++ 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了图像二值化算法以及利用VC++软件工具进行算法的实现。论文重点实现了图像分割技术中常用灰度图像二值化算法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理;二值化;VC++; 1.引言 1.1 图像与数字图像 图像就是用各种观测系统观测客观世界获得的且可以直接或间接作用与人眼而产生视觉的实体。视觉是人类从大自然中获取信息的最主要的手段。拒统计,在人类获取的信息中,视觉信息约占60%,听觉信息约占20%,其他方式加起来才约占20%。由此可见,视觉信息对人类非常重要。同时,图像又是人类获取视觉信息的主要途径,是人类能体验的最重要、最丰富、信息量最大的信息源。通常,客观事物在空间上都是三维的(3D)的,但是从客观景物获得的图像却是属于二维(2D)平面的。 数字图像:数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵图像。在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。因此,数字图像实际上就是被量化的二维采样数组。 1.2 数字图像处理技术内容与发展现状 数字图像处理就是采用一定的算法对数字图像进行处理,以获得人眼视觉或者某种接受系统所需要的图像处理过程。图像处理的基础是数字,主要任务是进行各种算法设计和算法实现。 图像处理技术的发展大致经历了初创期、发展期、普及期和实用化期4个阶段。初创期开始与20世纪60年代,当时的图像采用像素型光栅进行少秒显示,大多采用中、大型机对其处理。在这一时期,由于图像存储成本高、处理设备昂贵,其应用面很窄。进入20世纪70年代的发展期,开始大量采用中、小型机进行处理,图像处理也逐渐改用光栅扫描方式,特别是CT和卫星遥感图像的出现,对图像处理技术的发展起到了很好的推动作用。到了20世纪80年代,图像处理技术进入普及期,此时的微机已经能够担当起图形图像处理的任务。超大规模集成电路(Very Large Scale Integration, VLSI)的出现更使处理速度大大提高,设备造价也进一步降低,极大地促进了图形图像系统的普及和应用。20世纪90年代是图像处理技术的实用化时期,图像处理的信息量巨大,对处理速度的要求极高。 1.3 图像二值化原理及意义 图像二值化是指用灰度变换来研究灰度图像的一种常用方法,即设定某一阈值将灰度

基于图像的信息隐藏检测技术

基于图像的信息隐藏检测技术 傅德胜,谢永华 (南京信息工程大学计算机与软件学院南京210044) 摘要:本文首先介绍了现有图像信息隐藏检测技术的分类,然后阐述了常用的基于图像的信息隐藏盲检测技术,并对它们的优缺点和应用领域进行了分析,最后对信息隐藏技术的发展和系统开发作了分析与展望。 关键词:信息隐藏;基于图像;盲检测 1 引言 现代信息隐藏技术自上个世纪九十年代中期出现以来,已经成为数字通信、信息安全和版权保护领域的重要研究课题,并得到了越来越广泛的应用。目前利用数字图像作为隐秘信息的载体已经成为主要的信息隐藏技术之一,其基本原理是利用人体感觉器官对数字图像的感觉冗余,将被隐藏的图像数据嵌入在某种载体图像中,嵌入后隐秘图像与原始的载体图像几乎没有任何视觉上的差别,很难被观察者和监视系统发现,从而可以保证机密信息传输的安全性。可以预见,信息隐藏技术将是今后相当一段时间内的重要的隐蔽通信方式[1] 。 但是信息隐藏技术的发展也带来了一定的负面效果,据美国媒体透露,已经发现恐怖组织利用隐藏在图像中的信息传递联络情报,甚至将计算机病毒隐藏在载体图像中进行传输,这些都对国家安全和社会稳定产生了很大的威胁。因此,研究对图像中可能存在的各种隐藏信息进行有效检测的方法已经迫在眉睫,因而基于图像的信息隐藏检测技术也就成为目前信息安全领域的重要研究课题。近几年来,世界各国的信息安全专家在这一方面进行了深入的研究,并提出了一定的隐藏信息检测模型,开发了相关的信息隐藏检测软件,如美国著名的信息安全产品开发公司Wetstone开发的信息隐藏检测软件Stego Suite[2] 。本文首先对目前常用的基于图像的信息隐藏技术进行了统计和分类,分析了它们的优缺点和适用领域,然后重点介绍了基于图像信息隐藏的盲检测算法,最后对隐藏技术的发展趋势和信息隐藏检测系统的开发进行了分析与展望。 2 基于图像的信息隐藏检测技术 图像信息隐藏检测技术主要用于判断图像中是否有隐藏信息的存在,它是信息隐藏分析技术的第一步,也是现阶段基于图像的隐藏信息分析的主要内容。 从检测技术的手段考虑,基于图像的信息隐藏检测技术大致可以分为: (1)对比检测技术 对比检测技术是对隐蔽图像载体和原始图像载体的属性如大小、分辨率、颜色值、灰度值、直方图或者变换域系数进行对比,从其中的差值或者关联信息中进行分析判断隐藏信息存在的可能性。这种方法实现比较简单,但是在大多数情况下,无法获取原始载体图像,因此没有太大的实际意义和应用价值。 (2)盲检测技术 盲检测技术指的是在没有原始载体图像的情况下,只通过隐蔽载体本身来检测隐藏信息。通常可以通过对图像特征进行分析和提取,判断是否存在隐藏信息。盲检测技术是当今信息隐藏检测领域最热门的研究领域,难度较大,但是具有更广泛的应用前景。 根据研究角度不同,基于图像的信息隐藏检测技术可以分为: (1)时空域方法

基于同态公钥加密系统的图像可逆信息隐藏算法

软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.doczj.com/doc/1d5969979.html, Journal of Software, 2016,27(6):a20 [doi: 10.13328/https://www.doczj.com/doc/1d5969979.html,ki.jos.005007] https://www.doczj.com/doc/1d5969979.html, ?中国科学院软件研究所版权所有. Tel: +86-10-62562563 基于同态公钥加密系统的图像可逆信息隐藏算法? 项世军, 罗欣荣 (暨南大学信息科学技术学院电子工程系,广州 510632) 通讯作者: 项世军, E-mail: Shijun_Xiang@https://www.doczj.com/doc/1d5969979.html, 摘要: 同态加密技术在加密信息、对信息进行隐私保护的同时,还允许密文数据进行相应的算术运算(如云端可直接对同态加密后的企业经营数据进行统计分析),已成为云计算领域的一个研究热点.然而,由于云存在多种安全威胁,加密后信息的安全保护和完整性认证问题仍然突出.另外,信息在加密后丢失了很多特性,密文检索成为了云计算需要攻克的关键技术.为了实现对加密图像的有效管理及其安全保护,本文提出了一种基于同态加密系统的图像可逆信息隐藏算法.该算法首先在加密前根据密钥选择目标像素,并利用差分扩展DE(Difference Expansion)的方法将目标像素的各比特数据嵌入到其它像素中.然后,利用Paillier同态加密系统对图像进行加密得到密文图像.在加密域中,利用待嵌入信息组成伪像素,加密后替换目标像素,完成额外信息的嵌入.当拥有相应的密钥时,接收方可以分别在密文图像或明文图像中提取出已嵌入的信息.当图像解密后,通过提取出自嵌入目标像素的各比特数据来恢复原始图像.实验仿真结果表明,该算法能够在数据量保持不变的前提下完成同态加密域中额外信息的嵌入,信息嵌入快速高效,并可分别从加密域和明文域中提取出嵌入的信息. 关键词: 可逆信息隐藏;图像加密;同态加密系统;图像安全保护;云计算 中图法分类号: TP309 中文引用格式: 项世军,罗欣荣.基于同态公钥加密系统的图像可逆信息隐藏算法.软件学报, 2016,27(6):a20. http:// https://www.doczj.com/doc/1d5969979.html,/1000-9825/5007.htm 英文引用格式: Xiang SJ, Luo XR.Reversible data hiding in encrypted image based on homomorphic public key cryptosystem. Ruan Jian Xue Bao/Journal of Software, 2016,27(6):a20 (in Chinese).https://www.doczj.com/doc/1d5969979.html,/1000-9825/5007.htm Reversible Data Hiding in Encrypted Image based on Homomorphic Public Key Cryptosystem XIANG Shi-Jun, LOU Xin-Rong (Department of Electronic Engineering, School of Information Science and Technology, Jinan University, Guangzhou 510632, China) Abstract: Homomorphic encryption, which protects privacy effectively and allows algebraic operations directly in the ciphertext, has been a hot spot in the study of cloud computing. Due to security threats in cloud computing, the security protection and integrity authentication of encrypted data remain grave problems. Besides, the challenge lies in how to retrieve the encrypted data. To achieve more effective management and security protection of encrypted images on-line, this paper proposes a reversible data hiding scheme for ciphertext based on the public key cryptosystems with homomorphic and probabilistic properties. In the proposed scheme, partial pixels are selected as target pixels by a secret key and all bits of the target pixels are embedded into the other pixels with difference expansion (DE) to vacate room before encryption. As a bonus, secret data can be embedded directly in homomorphic encrypted domain by altering the target pixels with the fake pixels which are comprised of secret data. With the legal key, the receiver can extract the embedded data from the encrypted image and the directly decrypted image. Furthermore, he/she can recover the original image perfectly after decryption and data extraction. Finally, experimental results show that extra data can be embedded more efficiently in homomorphic encrypted domain while keeping the quantity of data unchanged. Besides, the embedded data can be extracted in both ciphertext and plaintext. Key words: reversible data hiding; image encryption; homomorphic cryptosystem; image security protection; cloud computing ?基金项目: 国家自然科学基金(61272414). Foundation item: National Natural Science Foundation of China (61272414) 收稿时间: 2015-08-15; 修改时间: 2015-10-09; 采用时间: 2015-12-05; jos在线出版时间: 2016-01-21 CNKI网络优先出版: 2016-01-22 11:20:08, https://www.doczj.com/doc/1d5969979.html,/kcms/detail/11.2560.TP.20160122.1120.017.html

图像二值化中阈值选取方法研究

目录 摘要 ................................................................. III Abstract............................................................... IV 第一章绪论. (1) 1.1 图像与数字图像 (1) 1.2 数字图像处理技术内容与发展现状 (2) 1.3 灰度图像二值化原理及意义 (4) 第二章软件工具——MATLAB (6) 2.1 MATLAB概述 (6) 2.2 MATLAB的工作环境 (6) 2.3 MATLAB图像处理工具箱 (8) 2.4 工具箱实现的常用功能 (9) 第三章图像二值化方法 (11) 3.1 课题研究对象 (11) 3.2 二值化方法研究动态 (13) 3.3 全局阈值法 (18) 3.4 局部阈值法 (18) 第四章 Otsu方法和Bernsen方法 (20) 4.1 Otsu算法分析 (20) 4.2 Otsu方法流程图 (22) 4.3 Bernsen算法分析 (23) 4.4 Bernsen方法流程图 (23) 第五章 Otsu方法和Bernsen方法实验比较 (25) 5.1 Otsu方法实验结果分析 (25)

5.2 Bernsen方法结果分析 (27) 5.3 0tsu方法和Bernsen方法实验结果比较 (28) 5.4 结论 (29) 结束语 (31) 参考文献 (32) 致谢 (33) 附录:源代码 (34)

摘要 在人类获取的信息中,视觉信息约占60%,听觉约占20%,其它约占20%。由此可见,视觉信息对人类非常重要。同时,图像是人类获取视觉信息的主要途径。图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对Matlab7.0 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了灰度图像二值化方法以及利用Matlab7.0软件工具进行算法的实现。课题重点实现了图像分割技术中灰度图像二值化方法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理,二值化,Matlab,Otsu算法,Bernsen算法

实验二图像DCT域信息隐藏实验

综合评分:实验二:图像DCT域信息隐藏实验 【实验目的】: 一、简单复习变换域信息隐藏的基本思想 二、用 MATLAB实现图像DCT相关操作 三、完成基于图像DCT的信息隐藏实验 【实验内容】:(请将你实验完成的项目涂“■”) 实验完成形式: ■用MA TLAB函数实现图像DCT域信息隐藏和提取 ■用MA TLAB命令行方式实现图像DCT域信息隐藏和提取 □其它:(请注明) 实验选择载体: ■256×256灰度图像■256×256RGB图像■任意大小的RGB图像 实验效果和分析: ■分析了健壮性参数α与鲁棒性的关系 ■能随机选择嵌入块(考虑安全性因素) ■嵌入块均匀分布于载体 □信息提取的检错/纠错 ■分析了健壮性参数α与不可见性的关系 □其它:(请注明) 【实验工具及平台】: ■Windows+Matlab■其它:(请注明)WinHex 【实验涉及到的相关算法】: 在一个图像块中调整两个(或多个) DCT系数的相对大小。将描述一个使用数字图像作为载体的系统。在编码处理中,发送者将载体图像分成8×8的像素块,每一块只精确地编码一个秘密信息位。嵌入过程开始时,首先伪随机地选择一个图像块bi,用它对第i个消息比

特进行编码。令Bi=D{bi}为DCT变换后的图像块。 在通信开始前,发送者和接收者必须对嵌入过程中使用的两个DCT系数的位置达成一致,让我们用(u1,v1)和(u2,v2)来表示这两个索引。这两个系数应该相应于余弦变换的中频,确保信息保存在信号的重要部位(从而使嵌入信息不容易因JPEG压缩而完全丢失)。进一步而言,人们普遍认为中频 DCT系数有相似的数量级,我们可以假定嵌入过程不会使载体产生严重降质。因为构造的系统要在抵抗JPEG压缩方面是健壮的。我们就选择在JPEG压缩算法中它们的量化值一样的那些DCT系数。根据表2.1,系数(4,1)和(3,2),或者(1,2)和(3,0)是比较好的。 编码方法:若块Bi (u1,v1) >Bi(u2,v2) 就编码为“1”,否则编码为“0”。 在编码阶段,如果相对大小与要编码的比特不匹配,就相互交换两个系数。由于JPEG 压缩(在量化阶段)能影响系数的相对大小,算法应通过在两个系数中加随机值,以确保对某个x>0,使得|Bi (u1,v1)-Bi(u2,v2) |>x。 DCT隐秘载体编码过程: for i =1,...,l (M) do 选取一隐蔽数据块bi Bi=D{bi} if m=0 then if Bi (u1,v1)>Bi (u2,v2)then 交换Bi (u1,v1)和Bi (u2,v2) end if else if Bi (u1,v1)

LSB图像信息隐藏实验

学号:姓名:专业年级班级: 实验室:组别:实验日期:

message=fopen('Message.txt','r'); [msg,msg_len]=fread(message,'ubit1') %按位以二进制形式读取文本内容与长度 [m,n]=size(image1) %读取行和列 p=1; %p 为秘密信息的位计数器 [row,col]=randinterval(image1,msg_len,1996); for i=1:msg_len image1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),col(i)),2)+msg( p,1); if p==msg_len break ; end ; p=p+1; end %还原图像 Hide_image(:,:,1)=image1; Hide_image=uint8(Hide_image); imwrite(Hide_image,'Hide_image.tif'); %输出隐藏信息的图像 subplot(121);imshow(image);title('未嵌入信息的图片'); subplot(122);imshow(Hide_image);title('嵌入信息的图片'); else ['the photo is not a rgb style'] fclose('all'); end 实验算法 2:读取 LSB 隐藏的信息 1.读取已经隐藏信息的图像。如果为 RGB 图像,则读取图像的一层(该层为嵌入信 息的那层)。 2.用与 LSB 算法中相同的随机数种子产生相同的一串随机数。随机数串的长度由 LSB 中获得(长度不得大于图像大小)。 用同一个伪随机生成算法,相同的种子,来产生像素点位置,可以确保隐藏时和提取 时位置顺序是一模一样的,在顺序读取这些位置上的数据(利用与运算,与上1,任

灰度图像二值化方法matlab代码

OTSU算法代码: I=imread('****'); th=graythresh(I); J=im2bw(I,th); subplot(121) imshow(I); subplot(122) imshow(J); Bernsen算法代码: clc; clear all close all I=imread('****'); [m,n] = size(I); I_gray=double(I); T=zeros(m,n); M=3; N=3; for i=M+1:m-M for j=N+1:n-N max=1;min=255; for k=i-M:i+M for l=j-N:j+N if I_gray(k,l)>max max=I_gray(k,l); end if I_gray(k,l)

for i=1:m for j=1:n if I_gray(i,j)>T(i,j) I_bw(i,j)=255; else I_bw(i,j)=0; end end end subplot(121),imshow(I); subplot(122),imshow(I_bw); 改进的Bernsen算法代码:clc; clear all close all I=imread('****'); I_gray=double(I); [m,n] = size(I); a=0.3; A=0;T1=0;S=0; for i=1:m for j=1:n A=A+I_gray(i,j) ; end end A=A*0.9; while(S

信息隐藏 实验五 Patchwork 图像信息隐藏

实验五 Patchwork 图像信息隐藏 一,实验目的 1,了解Patchwork信息隐藏特点, 2,掌握基于Patchwork 的图像信息隐藏原理 3,设计并实现一种 Patchwork 的信息隐藏方法 二,实验环境 1, Windows XP 操作系统 2, Matlab 7.1版本软件 3, BMP格式图片文件 三,实验原理 1,Patchwork是指从载体数据中选择一些数据组成两个集合,通过修改这两个集合之间的某种关系来携带水印信息。这两个集合可以是两个系数、两组系数或者是两个特征量。两个集合之间的关系可以是大小关系、能量关系、逻辑关系和奇偶关系等。Patchwork方法嵌入水印时,通过修改集合之间的某种关系来嵌入水印;提取水印时则根据对应的关系来提取嵌入的水印信息。2,在本实验报告中,验证了通过随机方式把像素分组的方法。随机选择N对像素点(ai和bi),然后将ai点的值增加d,将bi点的像素值减少d。 3,同时,设计了自己的算法。先把图像的像素写成一维矩阵,根据矩阵下标4*n形式和4*n-1形式分为两组,将下标为4*n形式所对应的像素增加常量d=2.3,将下标为4*n-1形式所对应的像素减少常量d=2.3。 四,实验内容 1, 验证通过随机方式把像素分组的方法。 (1)嵌入秘密信息 clc; clear all; oi=imread('baboon.bmp');%读入载体图像 ni=rgb2gray(oi); wi=ni; [row col]=size(wi);

wi=double(wi); wi=wi(:); n=floor((row*col)/10); length=row*col; rand('state',123);%产生随机数的密钥 a=rand(1,n);%产生N长度的随机数 d=2.3;%定义修改的分量 count=0; k=1; while k<=n if (a(1,k)>=0.5) wi(k*10,1)=wi(k*10,1)+d; wi(k*10-1,1)=wi(k*10-1,1)-d; end k=k+1; end for i=1:row for j=1:col wil(i,j)=wi(row*(j-1)+i,1); end end wil=uint8(wil); imwrite(wil,'watermarked.bmp'); subplot(1,2,1);imshow(ni);%显示原始图像subplot(1,2,2);imshow(wil)%显示新图像 下图为原图与嵌入信息的图像:

灰度图像二值化方法研究

灰度图像二值化方法研究 摘要:在人类获取的信息中,视觉信息约占60%,听觉约占20%,其它约占20%。由此可见,视觉信息对人类非常重要。同时,图像是人类获取视觉信息的主要途径。图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对Matlab7.0 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了灰度图像二值化方法以及利用Matlab7.0软件工具进行算法的实现。课题重点实现了图像分割技术和边缘检测中灰度图像二值化方法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理;边缘检测;二值化;Matlab;Otsu算法;Bernsen算法 Gray image binarization method Abstract:Human beings obtain a lot of information, among which the visual information is about 60%, the sense of hearing about 20%, and others about 20%. Therefore, the visual information is very important for human beings. Moreover, the images are the primary way, by which a lot of information is obtained. Image binarization, as an important technology in image pre-processing, is widely-employed in pattern recognition, optical character recognition, medical imaging and so forth. In this paper, some notions and relative knowledge in digital image processing technology are introduced; then, the development of Matlab7.0 and its application in image processing briefly introduced; in addition, the method of grayscale image binarization and how to implement these algorithms based on Matlab7.0 are presented. This paper mainly implements the grayscale image binarization method in image segmentation technology and Marginal Detection , such as Otsu algorithm and Bernsen algorithm, and analyzes and compares the experimental results of the above algorithms. Keywords:Image processing;Marginal Detection;Binarization, Matlab;Otsu algorithm;Bernsen algorithm

相关主题
文本预览
相关文档 最新文档