2015-09-21 16:12:55 u013146742 阅读数 9196
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19508 人正在学习 去看看 夏曹俊

首先,我们常用的水印算法有空域水印算法 、变换水印算法。

1.变换水印算法是现在主要的研究对象,这是因为该技术具有较好的不可感知性和鲁棒性(稳健性),变换水印算法是在没有嵌入数字数据前对原始数据信息进行的一种可逆的数字变换,通过一定的规则且按水印的相应指标对对变换域的某些系数进行修改来实现数字水印的嵌入,然后利用逆变换重新构造嵌入水印的数据,从而实现水印的提取。

    变换水印算法最大的优点是:(1)嵌入的水印能量信息能够遍布在整幅图形的空域之中的所有基元当中,因此,具有很强的恶意攻击和抗信号处理的能力,及稳健性较好。

(2)能够方便的将人类的视觉系统的一些特征融合到水印算法之中(3)可以和jpeg 压缩方法兼容。因此比较容易实现压缩图形的水印嵌入问题。

2.频域嵌入水印算法能够获得良好的图形保真度,和空域水印算法相比,具有较好的稳健性,可实现在网格环境下的图形版权保护,频域嵌入水印算法是在分析问题的时候,以频率作为基本变量。


3。 空域水印算法

 空域水印算法就是在原始数据上修改嵌入水印,其稳健性不好。例如:如果以灰色图片水印为例,色素值域为0-255 ,每色素是8bit ,空间上可以分为最高位和最低位,最高位就是黑白色,只有这两个颜色,没有其他的颜色。

2019-06-25 20:19:18 qq_39980334 阅读数 211
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19508 人正在学习 去看看 夏曹俊

一、项目需求分析

1.1项目介绍

本算法是将数字水印置乱加密后微小的扰动原始彩色图像经离散余弦变换后的对应系数,从而达到数字水印嵌入的目的。 实验表明算法简单高效,原图像与嵌入水印后图像差异小,水印提取准确,能较好的保证数字水印不可感知性,在对嵌入水印图像进行各种加噪、裁剪、旋转、压缩等处理后,水印仍有较强的鲁棒性。

1.2功能需求

  1. 实现混沌随机数的生成
  2. 实现图像加解密
  3. 实现数字水印置乱

  4、实现变换域图像数字水印的嵌入与提取

5、对含水印图像进行鲁棒性测试和相关性分析

  • 项目分析与设计

2.1项目需解决的关键技术问题

  1. 各种图像格式之间的相互转换,各种值类型间的转换
  2. DCT水印嵌入和提取
  3. 混沌随机数的生成和图像加解密

4、对生成的水印图像进行攻击测试

2.2项目流程

  1. 混沌序列的生成和图像加解密

 

  1. 水印和嵌入与提取

 

  1. 鲁棒性检测

   对含水印的图像进行加噪、加噪、裁剪、旋转、压缩等攻击,再提取出的水印与未受攻击的图像提取出的水印进行比较。

 

2.3功能模块

项目主要分为三部分:

一、水印图像的生成:

   采用改进型logistic混沌序列生成算法,生成一维的混沌序列,再转为二维的二值矩阵与原始二值图片进行异或加密,加密后的图像再进行置乱,消除水印像素间的相关性,故能提高水印抗图像剪裁等操作的鲁棒性,因为有置乱操作,剪切攻击后恢复的水印也是完整的。置乱后的图片为水印图片。

二、数字水印嵌入和提取:

Step1: 将原始彩色载体图像进行 8伊8 的分块,得到(M*M2)/(8*8)个子块Block。

Step2: 对每个子块进行 DCT 变换,各自得到 8*8 的系数矩阵。

Step3: 对水印图像进行 Arnold 置乱。

Step4: 依据 Arnold 置乱后的水印图像W(i,j) 来扰动对应的Block(i,j)系数矩阵,采用乘性扰动方式,微调系数矩阵各元素的值,即

式中,a为扰动因子,通常琢 取很小的正数。 本算法的a 取值为0. 04。

Step5: 对 扰 动 后 的 图 像 块 进 行 反 余 弦 变 换(IDCT,Inverse Discrete Cosine Transform) ,合并图像块,视其为嵌入水印的图像。

水印提取只需采用与水印嵌入的逆操作即可实现。

 

三、对含水印的图像进行攻击和测试

 对含水印的图片分别进行噪声攻击、压缩攻击、剪切攻击、旋转攻击,测试与不受攻击提取的水印间的相关性,改变攻击参数测试水印的鲁棒性强弱。

 

三、项目设计与实现

3.1项目设计

3.3.1数字水印基本框架

一个数字水印系统一般包括三个基本方面:水印的生成、水印的嵌入和水印的提取或检测。数字水印的嵌入和提取的一般过程基本框架如图3.1,图3.2所示。

图3.1 水印嵌入的一般过程基本框架

图3.2 水印检测的一般过程基本框架

 

 

3.2项目实现

3.2.1 水印图片的生成

  1. 混沌随机数的生成

   采用了改进型logistic映射,且为满映射状态,生成一维的混沌随机数序列再将其归一化,初始值为0.学号。

 

混沌序列(double):

归一化后(uint8):

对归一化后的序列进行二值化(logical):im2bw(B)默认是0.5,换算成255就是127.5,小于127.5为0,所以7和9是0

 

二维的混沌序列

 

  1.  二维混沌序列和图片进行异或操作加密

      

  1. 对加密后图像进行解密

  1.  对加密后的图像进行置乱

图像置乱是一种图像加密技术,通过某种算法仅将一幅图像像素的次序打乱,而像素个数及图像的直方图不变。 由于对水印进行置乱可以消除水印像素间的相关性,故能提高水印抗图像剪裁等操作的鲁棒性。目前用的较多的置乱方法有 Fass 曲线,Gray 代码、Arnold 变换和幻方方式等。Arnold 变换直观且具有周期性,是 Arnold 在遍历理论中提出的一种变换,也称猫脸变换 ( Arnold忆s Cat Map)。

 

3.2.2 DCT数字水印嵌入和提取

 

1、 DCT水印嵌入

DCT 变换的基本原理是将图像f(x,y) 分块后的每一子块单独进行二维 DCT 变换,将每个数据单元的值转化为 M伊N 个系数,构成系数矩阵。 将系数按Zig-Zag 顺序排列,左上角第一个元素是直流分量(DC,Direct Current),称为直流系数,表示该数据块的灰度平均值。本实验对直流层进行嵌入。

 

2、 DCT对水印的提取

3、 对提取出的水印进行置乱还原,再对还原的图像进行解密

 

 

 

置乱还原:

 

解密:置乱还原后的水印与混沌二值矩阵进行异或。

    

 

 

3.2.3 对水印图像进行攻击和测试

1、 对含水印的图像进行攻击和测试,主要用了高斯噪声攻击和椒盐噪声攻击、旋转攻击、压缩攻击、剪切攻击,除了旋转攻击之外抵抗攻击性挺强的,基本上能看出来原图形,旋转攻击只有是1度的时候效果还可以。

 

2、相关性分析

 

 

3、 剪切攻击测试

剪切宽64像素长128像素时:

  

剪切宽128 128时:

      

 

剪切256 128时:已经不是很清楚了

   

4、旋转攻击测试

旋转1度

  

相关性:

 

 

 

旋转2度:图片已经很模糊了,相关性是还可以的

 

相关性:

旋转3度就完全看不清了

 

相关性也降到了0.76

  1. 噪声攻击测试

高斯噪声:

  

相关性:

 

椒盐噪声:

   

相关性:

 

  1. 压缩攻击测试

压缩比:75

 

   

相关性:

 

压缩比:60

  

相关性:

 

压缩比 40

   

 

压缩比 30

 

 

 

压缩比 15时图片已经看不怎么清楚了

  

传图不易,如需完整代码请下载!

https://download.csdn.net/download/qq_39980334/11258396

2007-03-23 13:19:00 lovingprince 阅读数 2728
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19508 人正在学习 去看看 夏曹俊

本文是本人毕业时发表的论文.

原文地址:http://www.ahcit.com/lanmuyd.asp?id=1972  

摘  要  文章提出一种集混沌加密技术,小波变换,扩频技术为一体的彩色图像水印算法。该算法先将水印信息通过混沌序列加密,再进行扩频调制弱化水印信息,然后在彩色载体图像绿色分量上进行小波变换,利用人类视觉模型(HVS)特性,在低频系数上嵌入处理后的水印信息。实验结果和攻击测试表明,该算法具有很好的鲁棒性以及安全性。

  关键词  扩频 ;鲁棒性;盲水印;混沌序列;小波变换;加密技术
 
1  引言
     如何有效的保证数字化信息的机密性、完整性、可用性、可控性和不可抵赖性是当前信息安全技术研究领域亟待解决的课题。
     目前,国际上正在探讨使用一些非传统的方法进行信息加密与隐藏。为了保证水印信息可靠地通过载体传送,一般用纠错码(ECC)编码[1]或M序列调制[2]。文献[3]给出了一种基于混沌序列的图像加密技术,以初始条件为密钥生成混沌序列,并将它映射为2K值混沌序列;然后依据该序列随机地修改图像每个像素点的灰度值。 图像的解密结果对混沌序列的初始值有较强的依赖性,安全性较高。
图表 1水印嵌入流程图
     实际上,基于混沌理论的保密通信、信息加密和信息隐藏技术的研究已成为国际非线性科学和信息科学两个领域交叉融合的热门前沿课题之一,也是国际上高科技研究的一个新领域。尽管已有许多混沌加密方案的提出,但混沌密码学的理论还未完全成熟,混沌密码学的研究仍然是一个新的具有挑战性的前沿课题。基于上述原因,本文提出了一种基于混沌理论的信息加密的彩色图像水印算法,该算法以混沌理论为基础,利用初始密钥生成相应的实数值混沌序列,对二值水印图像加密,然后采用扩频技术调制扩频以弱化水印信息。对宿主图像绿色分量进行小波变换,将水印信息嵌入位置选择在能量比较集中的低频系数部分,水印提取时需要密钥。由于该算法采用了多重加密,所以安全性非常好,并能够有效的抵抗噪声攻击和剪切攻击和高斯低通滤波攻击,具有较强的鲁棒性。
图表 2  水印提取流程图

2  混沌系统原理

     混沌现象是在非线性动力系统中出现的确定性的、类似随机的过程,这种过程既非周期又不收敛,并且对切始值有极其敏感的依赖性,
一维离散时间非线性动力系统定义如下:
                         (1.1)
    其中, xk ∈ P ,k=0,1,2,3…,我们称其为状态。 而θ: P→P 是一个映射,将当前状态xk映射到下一个状态xk+1。如果我们从一个初始值x0 开始,反复应用θ, 就得到一个序列{ xk ; k=0,1,2,3…..}。该序列称为该离散时间动力系统的一条轨迹。
一类非常简单却被广泛研究的动力系统是logistic映射,其定义如下:
                                   (1.2)
 
  其中, 0 ≤υ ≤4 称为分枝参数,xk ∈(0,1)。混沌动力系统的研究工作指出,当3.5699456…< μ≤ 4 时,logistic映射工作于混沌态。也就是说,由初始条件x0 在logistic映射的作用下所产生的序列 { xk ; k=0,1,2,3…..}是非周期的、不收敛的并对初始值非常敏感。
另一类简单的映射是Chebyshev 映射,以阶数为参数。k 阶Chebyshev 映射定义如下:
                           (1.3)
  其中 xk 的定义区间是(-1,1)。事实是通过简单的变量代换,logistic映射同样可以在区间(-1, 1)上定义。其形式如下:
                      其中λ∈ [ 0,2]         (1.4)
  在λ=2的满射条件下,logistic映射与Chebyshev映射是拓扑共轭的,其所生成的序列的概率分布函数PDF也是相同的:
                        (1.5)
  对于公式(1.2)形式的logistic映射,如果μ=4, PDF 可以改写为:
                            (1.6)
     通过ρ(x),我们可以很容易地计算得到logistic映射所产生的混沌序列的一些很有意义的统计特性。例如,x的时间平均即混沌序列轨迹点的均值是:
                          (1.7)
  关于相关函数,独立选取两个初始值x0 和y0 ,则序列的互相关函数为:
             (1.8)
  其中pdf ρ(x,y)= ρ(x) *ρ(y)。
  而序列的自相关函数ACF(auto-correlation functions)则等于delta 函数 δ(l)。这正是我们所需要的。
     Logistic序列的以上特性表明,尽管混沌动力系统具有确定性,其遍历统计特性等同于白噪声,其具有形式简单,初始条件的敏感性和具备白噪声的统计特性等诸多特性。

3  扩频原理

  数字水印技术的研究大约始于 1994 年,早期的算法强调水印的不可见性而忽视水印的健壮性,这些算法的理论基础主要源自统计学和图像编码、处理领域。 扩频技术的运用标志着水印技术的重大进步。扩频技术起源于通信系统,最早只是用于军用通信系统、制导系统等军用系统,它的理论基础来源于信息论和抗干扰理论。香农( Shannon )在其信息论中得到有名公式:
                           (1.9)
  式中 C 表示信道容量, W 是信道带宽, N 是噪声功率, S 是信号功率。香农公式表明了一个无误差地传输信息的能力同存在与信道中的信噪比以及用于传输信息的信道带宽之间的关系。
令 C 是希望具有的信道容量,即要求的信息,对式( 1.9 )换成以 e 为底的对数
                            (1.10)
  对于干扰环境的典型情况, S/N<<1, 对上式用幂级数展开,略去高次项得
                                       (1.11)
  通过上述的分析可得出一个重要结论:对于给定的信道容量 C 可以用不同的带宽 W 和信噪比 S/N 的组合来传输信息。如减少带宽则必须发送较大的信号功率;如有较大的传输带宽,则同样的信道容量能够用较小的信号功率(较小的 S/N )来传送,这表明宽带系统表现出较好的抗干扰性。因此,当信噪比太小,不能保证通信质量时,常用宽带系统改善通信质量,使信号在强干扰情况下,仍然可以保持可靠通信。
  在数字水印技术中,将原始数据的频域看作通信信道C,水印看作将通过C的信号S,各种有意无意的干扰看作噪声N。利用扩频技术原理,将水印分布在许多数据频域系数中,加入每个频域系数的信号能量很小且不可随意检测。然而,水印检测过程知道水印的位置和内容,它能将许多微弱的信号集中起来形成具有较高信噪比的输出值,要破坏水印需要很强的噪声信号加入所有频域系数中,但是,破坏水印的同时也造成原始数据质量严重下降。
  因此,利用扩频原理的数字水印技术具有很高的健壮性和安全性。第一,水印的位置不明显且水印的值具有随机性;第二,频域区域的适当选择,使得有意、无意破坏水印的同时也破坏了原数据。

4  水印序列的生成

  设二值水印图像I大小为m×m。由密钥值k0采用公式(1.4)生成实数值混沌序列xk,k=1,2,3,……,m×m。对xk采用如下公式进行二值量化:
                      (1.12)
  由此得到二值混沌序列{H(xk ); k=1,2,3,……, m×m },这里分记为Qi
将I转换为相应的一维二进制信号Ii′,其中i=1,2,3……m×m;将Ii′中的0映射为-1,1映射为1,则得到Ij″∈{ - 1 , 1 },j=1,2,3……m×m;将得到的Ij″序列利用混沌序列Qi加扰,得到第一次加密后的序列,然后将此加密后的序列用一个大整数因子Z进行采样扩展,并由此得到扩展弱化后的水印序列Ki=Ij″,其中(j-1)Z+1≦i≦jZ 。对Ki进行调制,调制序列是密钥k1采用公式(1.4)(1.12)得到的二值混沌序列Pi,  (i=1,2,3……m×m×Z),调制之后的最终水印信号序列Bi=KiPi ,Bi∈{ - 1 , 1 }。这里相当于使用k0,k1,,Z对水印序列进行了三次加密。

5  水印信息的嵌入

  通过把图像进行二维小波分解,发现能量大部分集中在低频部分,出于对透明性的考虑,水印应该嵌在最不重要的频带系数上,但是经过一定图像处理后,水印很容易丢失,鲁棒性不强。出于对鲁棒性的考虑,水印应该添加在最重要的频带系数上,但这又会使图像质量严重下降。于是有人折中选择在中频系数上嵌入水印信息[4],取得了一定的效果。该文利用人类视觉模型(HVS)特性,在人眼不敏感的低频系数上嵌入处理后的水印信息,同时在绿色分量嵌入水印比在红色或蓝色分量嵌入水印能更好地抵抗有损压缩和加噪攻击,具有更好的鲁棒性,因此,该文在彩色图像绿色分量的低频系数上嵌入水印,设彩色载体图像C大小为M×N,具体处理过程如下:
  (1)取彩色图像的绿色分量,在此分量上进行一阶小波变换DWT
   (2)取该分量低频系数序列yi(其中yi按绝对值大小顺序排列)利用如下公式进行水印信息叠加:
                    (1.13)
  其中α为拉伸因子,α越小,水印的透明性越好,但是水印的稳健性越差;α越大,则水印的稳健性越好,但视觉的透明性越差。本文取α=0.1。
  (3)将该分量经过小波反变换DWT-1,并对彩色图像进行重构,得到嵌入水印后的图像。

6  水印信息的提取与检测

  水印检测方法采用如下假设检测:
                (无水印)
        (有水印)

图表 3 载体图像和水印比照图    
  其中,F*,F分别代表待测图像和原始图像中用来隐藏水印的象素或特征值,W*为待测水印序列;N为噪声,由于嵌入水印的图象可能存在失真,从中所检测到的水印也将在一定程度上与原始水印有所不同,为了确定图像中是否含水印需计算W*与W的相似度。具体处理过程如下:
    (1)分别取待测彩色图像和原始彩色图像的绿色分量,并在此分量上进行一阶小波变换(DWT)后,计算得到低频系数的差值Bi
    (2)利用Bi与 Bi′采用公式(1.14)计算NC相关值,
                   (1.14)
  扩频水印存在的标准为:若NC>T,可以判断被测图像中是否有序列Bi,T的选择必须考虑到漏警率和虚警率。根据实验,本文采用T=0.90;
     (3)如果扩频水印存在,可以对其采用水印生成的反向顺序,进行解调,反扰乱,得到最终的水印图像。

7  实验结果分析

     本文采用的原始宿主图像是512×512的lena标准彩色测试图像,本文所采用的水印图像是64×64的二值图像水印。图表3(a)(b)(c)(d)分别为原始载体图像、原始水印、嵌入水印后的载体图像和提取出的水印。这里选择扩频整数因子Z=3,混沌初始密钥k0= 0.2478 , k1=0.23454 。
水印嵌入结果(图3b)进行评估,PSNR=40.8050 ,NC=0.9997。由此可见水印具有良好的透明性。
     对嵌入水印后的lena图像进行噪声干扰、剪切攻击和滤波攻击,下面给出了几个水印提取和检测结果,图表4是噪声干扰后提取的水印图像,图表5是剪切后(剪切部分用白色填充)提取的水印图像,图表6是采用高斯低通滤波提取的水印图像:

                         
 
图表 4 各种强度噪声攻击后提取的水印
 

图表 5 各种剪切后提取的水印图表  

                                       图表6低通滤波后提取的水印

8  实验结论

  本文充分利用了小波的优点和人眼的视觉特性,同时,利用混沌原理和扩频技术对水印进行处理,使得算法有很强的隐蔽性和安全性,而且嵌入的水印具有很好的鲁棒性,实验证明该算法具有很好的抗噪声干扰、裁减等优良性能。而且算法安全、易于实现,对彩色数字图像版权保护的提供了一个参考。

参考文献

[1]  J.R. Hernández, F. Pérez-González, J.M. Rodrígez, G.Nieto, Performance analysis of a 2-D-multipulse amplitude modulation scheme for data hiding and watermarking of still images, IEEE J. Selected Areas Comm. 16 (4) (May 1998) 510-523.
[2] M. Kutter, Digital image watermarking: hiding information in images, Ph.D. Thesis, EPFL, Lausanne, Switzerland, August 1999.
[3] 张小华,刘芳,焦李成.一种基于混沌序列的图像加密技术.中国图像图形学报. Vol.8,No.4. 2003
[4] 李象霖, 张妙兰 , 冯德锦 . 一种DCT变换域的图像数字水印技术[A].中国科学技术大学 研究生院.北京:2000.12.1
2018-05-05 09:33:14 qq705167895 阅读数 454
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19508 人正在学习 去看看 夏曹俊
毕设在做在Python环境下的遥感图像水印算法 最近看了挺多博客 下面是自己整理的 有瑕疵的话请大神指正 刚开始学 希望大家多交流
我的水印用的是灰度图像 但是我处理以后只有0和255两个颜色 238*238
我的遥感图像是6通道8431*7646

import gdal
import numpyfrom skimage
import data,img_as_float,img_as_ubyte
import cv2
filename = 'f:/bs/band_1.tif' #打开原图片,我的遥感图像已经分好了波段 进行单波段的水印嵌入
dataset = gdal.Open(filename) #打开文件
im_width = dataset.RasterXSize #获取长
im_height = dataset.RasterYSize #获取宽
im_bands = dataset.RasterCount #获取通道数
im_data = dataset.ReadAsArray(0,0,im_width,im_height) #将转化为数组 取长宽最大的16的倍数
waterdata_3 = gdal.Open("f:/bs/water_wh_1_255.bmp") #打开水印图片
im_water_data = waterdata_3.ReadAsArray(0,0,238,238) #将水印图片转化为数组
M = 3808 #处理的图片必须为一个正方形 我将水印嵌入图像中部的3808*3808的正方形区域
N = 238 #分成238块16*16的小正方形
K = 16 #分成16*16
I = numpy.zeros([M,M])
J = numpy.zeros([N,N])I = im_data[2000:,2000:]
J = im_water_dataBLOCK = numpy.zeros([K,K]) #处理数组信息暂存
for p in range(238):
for q in range(238):
x = p*K
y = q*K
BLOCK = I[x:x+K,y:y+K]
BLOCK = img_as_float(BLOCK) #由于cv2包的dct函数处理的数据类型是float 所以先进行格式转换
BLOCK = cv2.dct(BLOCK)
if J[p][q]==0:
a=-1
else:
a=1
BLOCK = BLOCK*(1+a*0.0075) #0.0075是插入水印的影响参数 越大水印在图片中越清晰
BLOCK = cv2.idct(BLOCK) #dct处理
for ii in range(K): #转换会unit8格式,float在python中是在-1和1之间
for jj in range(K):
if BLOCK[ii][jj]>1:
BLOCK[ii][jj]=1
BLOCK = img_as_ubyte(BLOCK) #转换回unit8
I[x:x+K,y:y+K] = BLOCKim_data[2000:,2000:]=I
format = "GTiff"
driver = gdal.GetDriverByName(format)
tods = driver.Create("f:/bs/band_11_255_0.0075.tif",im_width,im_height,1,options=["INTERLEAVE = PIXEL"])
tods.WriteRaster(0,0,im_width,im_height,im_data.tostring(),im_width,im_height,band_list=[1])

原图:

插入水印后:
水印图片:

2008-12-08 08:41:00 superdont 阅读数 1822
  • 学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程

    OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,图像金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和终于opencv处理的视频合并)。

    19508 人正在学习 去看看 夏曹俊
对水印序列的预处理可以降低水印的相关性,常用的有:
1.使用M序列对水印进行扩频。
1.1 根据水印的不同取值,直接向载体信号中嵌入符号相反的m序列。例如,令采用的m序列为P,当水印信息为1时,嵌入的序列为P,当水印信息为0时,嵌入的序列为-1×P,即序列的反向。
1.2 首先对水印序列进行比特重复(过采样),然后使用m序列对过采样后的水印序列进行调制,得到要嵌入的序列。
2 对水印信号进行位分解
对一幅大小为N×N的8bit,256灰度级的图像,将其按位分解为8层位图,每层每个像素点对应的值只有0或1.
3 利用图像的置乱对水印进行预处理
使用置乱技术可以提高水印信息的安全性,增强水印抵抗恶意攻击的能力。
传统秘法学主要针对一维数据流提供了良好的算法,而二维图像有其仔自身的特点,例如自相似性、相关性等。通过置乱,得到杂乱无章、面目全非的图像,即使非法截取者获取了图像,如果不知道如何恢复
,对它也无能为力。
没有更多推荐了,返回首页