信息隐藏

图像信息隐藏

▼魔方 西西 提交于 2020-02-29 12:56:35
简单介绍   本篇介绍和解说怎样在图像中隐藏一些信息。 详细实现 基本流程   一共分为两部分:第一部分是生成隐藏的加密图像,还有一部分是对加密图像解密。显示出被隐藏的信息。 生成加密图像 详细代码 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <math.h> #include <string.h> #include <opencv/cv.h> #include <stdio.h> using namespace cv; char normalpicName[20]; Mat mat1, mat2; int normalWidth, normalHeight; IplImage src1, src2; CvScalar s1, s2; void initPic(){ int i, j; mat1 = imread(normalpicName); src1 = mat1; mat2 = imread(normalpicName); src2 = mat2; normalWidth = mat1.rows; normalHeight = mat1.cols; for(i=0; i< normalWidth; i++){ for(j=0; j<normalHeight;

信息隐藏与数字水印技术-转

此生再无相见时 提交于 2019-12-23 04:43:06
1 信息隐藏 1. 1 信息隐藏模型 信息隐藏 (Information Hiding)不同于传统的密码学技术。密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式 (密文 )进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。对加密通信而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全;但对信息隐藏而言,可能的监测者或非法拦截者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。多媒体技术的广泛应用,为信息隐藏技术的发展提供了更加广阔的领域。 我们称待隐藏的信息为秘密信息 (secret message),它可以是版权信息或秘密数据,也可以是一个序列号;而公开信息则称为载体信息 (cover message),如视频、音频片段。这种信息隐藏过程一般由密钥 (Key)来控制,即通过嵌入算法(Embedding algorithm)将秘密信息隐藏于公开信息中,而隐蔽载体 (隐藏有秘密信息的公开信息 )则通过信道 (Communication channel)传递,然后检测器 (Detector)利用密钥从隐蔽载体中恢复 /检测出秘密信息。 信息隐藏技术主要由下述两部分组成 :(1 )信息嵌入算法

面向对象设计

走远了吗. 提交于 2019-12-06 10:12:40
基本概念 抽象:用于对象规范从其主体分离的过程中。规范是对象的可是部分,它定义了由对象提供的操作(也就是其他对象如何使用该对象)。对象主体或者其内部的部分结构对于其他对象来说是隐藏的。 信息隐藏:用于结构化对象的过程中,使用它可以决定哪些信息应该是可见的,哪些信息应该是隐藏的。这样的话,对象中不需要让其他对象可见的方面就都成为隐藏的。 对象:是建立在信息隐藏概念的基础之上的。对象的特征就是它具有的状态或内部数据,这些数据只能通过调用由对象提供的操作来修改。对象还提供由其他对象使用的操作;而它也使用由其他对象提供的操作;对象是一些类的唯一示例;对于其他对象来说,一个对象的可视性是受限的。对象的可视部分是由其外部规范提供的,其实现过程(内部结构)是隐藏的。同样,它看到其他对象的部分也限于哪些对象的外部规范。可以通过规范或者其实现过程来查看对象。 类:是一种对象类型,可以认为它是对象的模板。对象是类的一个示例。 继承(Inheritance):是类之间的一种关系,在这种关系中,子类可以共享父类的结构和操作,并对其进行调整以供自己使用。 表示法 类图(Class Diagram) 对象图(Object Diagram) 状态转换图 时间图 模块图 过程图 来源: https://www.cnblogs.com/Joyce-Record/p/11976400.html

BMP图像信息隐藏

有些话、适合烂在心里 提交于 2019-11-30 20:55:44
图像隐写算法LSB—Least Significant Bits,又称最不显著位。LSB算法就是将秘密信息嵌入到载体图像像素值得最低有效位,改变这一位置对载体图像的品质影响最小。 原理如下: 以实验用的24位真彩图为例,每个像素用3Byte表示,每Byte分别表示R、G、B三色的亮度,亮度取值范围位0~0xFF。采用LSB算法就是将图像信息的每一Byte的最后一位二进制替换为待嵌入的秘密信息的一位,按顺序进行。因为对最后一位的替换操作其实就是对亮度信息的加一或减一,对颜色影响甚微,所以肉眼难以察觉,这就达到了隐藏信息的目的。对于24位真彩图,所能嵌入的最大秘密信息的大小为像素数量的3/8字节 步骤如下: 以二进制的方式读取载体图像并分别头数据与像素数据 用二进制秘密信息中的每一笔特信息替换与之对应的载体数据的最低有效位 利用得到的新的二进制数据构造图像,即得到含有秘密信息的隐秘图像 /*** change.c ***/ #include<stdio.h> #include<stdlib.h> #include"define.h" int main() { //创建头文件,信息头结构变量 BMP_FILE_HEADER fileHeader; BMP_INFO_HEADER infoHeader; //打开载体图像文件,新建修改后的图像文件 FILE *file = fopen(

BMP 图像信息隐藏及检测

馋奶兔 提交于 2019-11-30 02:20:29
原理简介 针对文件结构的信息隐藏方法需详细掌握文件的格式,利用文件结构块之间的关系或根据块数据和块大小之间的关系来隐藏信息。 BMP(Bitmap-File)图形文件是 Windows 采用的常见图形文件格式,要利用 BMP 位图进行信息隐藏首先需要详细了解 BMP 文件的格式,BMP 图像文件结构比较单一而且固定,BMP 图像由文件头、信息头、调色板区和数据区四个部分组成,而 24 位真彩色图像中没有调色板信息。24 位真彩色 BMP 位图文件包括 3 部分。 第一部分是 BMP 文件头。前 2 个字节是“BM”,是用于识别 BMP文件的标志;第 3、4、5、6 字节存放的是位图文件的大小,以字节为单位;第7、8、9、10 字节是保留的,必须为 0;第 11、12、13、14 字节给出位图阵列相对于文件头的偏移,在 24 位真彩色图像中,这个值固定为 54;19,20,21,22表示的是图像文件的宽度,以像素为单位;23,24,25,26 表示的是图像文件的高度,以像素为单位。第二部分是位图信息头。从第 29 个字节开始,第 29、30 字节描述的是像素的位数, 24 位真彩色位图。该位的值为 0x18; 第三部分是数据区。从第 55 个字节开始,每 3 个字节表示一个像素,这 3 个字节依次表示该像素的红、绿、蓝亮度分量值。 在不影响图像正常显示情况下,可使用以下四种方法在

matlab 图像处理--OPAP信息隐藏

老子叫甜甜 提交于 2019-11-29 05:52:55
%%OPAP I1 = imread('Lena.jpg'); [M N] = size(I1); I2 = I1; x = input('input bits'); for i = 1 : M for j = 1 : N S = round(rand(1 , x)) pixel = I2(i,j); count = 1; for k = 1 : x pixel2 = bitset(pixel , count , S(k)); count = count + 1; if (count > x) break end end sgm = pixel2 - pixel; if(sgm > 2^(x-1) && sgm < 2^x && pixel >= 2^x) finalP = pixel2 - 2^x; else if(sgm < -2^(x-1) && sgm > -2^x && pixel <= 255 - 2^x) finalP = pixel2 + 2^x; else finalP = pixel2; end end I2(i,j) = finalP; end end imshow(I2) 来源: https://blog.csdn.net/V1AN_zzz/article/details/100533433