社区
Java SE
帖子详情
数字水印程序设计
王小胖重新学编程
2006-02-16 02:06:42
各位大侠帮帮忙,我的毕业设计是数字水印程序设计,我想用java实现,现在就是没有一点思想,老师让做的也比较简单,就是给个图片中加入信息(水印)并能提取出来,用java写两个程序就行了,我现在实在是没有一点思想,希望高手能提供一点帮助,能提供些代码更好,或者别的什么都行,我真的想不到从什么地方入手,高手们帮忙啊,谢谢了!
...全文
342
4
打赏
收藏
数字水印程序设计
各位大侠帮帮忙,我的毕业设计是数字水印程序设计,我想用java实现,现在就是没有一点思想,老师让做的也比较简单,就是给个图片中加入信息(水印)并能提取出来,用java写两个程序就行了,我现在实在是没有一点思想,希望高手能提供一点帮助,能提供些代码更好,或者别的什么都行,我真的想不到从什么地方入手,高手们帮忙啊,谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzhzzh204553
2006-02-16
打赏
举报
回复
不懂,但是帮顶一下
李雅勇的技术专栏
2006-02-16
打赏
举报
回复
我的一个老师让我也做这个课题,但我没做,不感冒。
我们老师已经做好了,是用vc6做的,你还是需要知道其原理才能动手做软件:
三个环节:水印设计、噪声消除和信号放大。
采用此设计出于以下几点考虑:① 色彩反差大,容易确认攻击点。② 同值象素聚集,可以进行自我修复。③ 增加了人眼对其的分辨力。④增加了信息的冗余度。⑤便于和数值形式的水印码建立对应关系。
从信号角度看,它实际上是增加了信号源的强度,因为较强的信号源能保证接收信号的强度。
在多媒体课件中,使用3张相同的图像不会引起攻击者的注意(比如背景)。我们在这3张图像中分别嵌入3个水印。除图1的水印外,我们还嵌入一张纯白水印和一张纯黑水印。3个水印尺寸完全相同。
我们基于以下几点考虑:
(1)攻击者为了达到破坏课件水印的目的,通常会对所有可疑媒体进行攻击。因此,我们有理由相信3个水印图像都遭到了攻击。这3个水印图像由于相似,经历的攻击也应大致相同。
(2)课件作为一个整体在网络上传播,各媒体游历了相同的过程,系统噪声的增加对于它们来说机会均等。
(3)攻击者的攻击是有限度的,造成原图像不可用的攻击对于攻击者也是没意义的。
依据嵌入方的记录,我们从3个图像中分别提取3个水印,我们称为wb、W、B。wb为真正水印,它代表一些有用的版权信息。W为白水印,B为黑水印。W在各种攻击和噪声影响下,将通过颜色变化表现出来,在我们的测试中它出现了很多黑点。B也产生了变化,不过它是以白点形式表现出来的。
降噪过程如下:
(1)定位W水印中的攻击点。
(2)利用攻击点校正原水印, 得到wb-W。
(3)定位B水印中的攻击点。
(4)利用攻击点校正原水印, 得到wb-B。
至此,我们得到了两个校正水印。如果攻击程度较弱,则提取水印已经有所改观。为了获得性能更好的结果。我们还需将信号放大。
信号放大
不同的算法可能对于颜色的处理方法不同,使用一种颜色进行校正,不可信程度增高。为此,我们提取两个校正结果中可信度高的部分。即认为用白色水印校正的结果中,白色区域是可信的,而用黑色水印校正的结果中,黑色区域是可信的。最后用可信区域对提取水印wb进行置换。
置换过程如下:
(1)两种校正结果按块划分,块的大小与原水印的划分块大小相同。(图一中有18个块)。
(2)对于第M个块,计算两种校正结果中对应块的灰度值的和,得S1、S2。
(3)计算纯白和纯黑块的灰度值的和,得W1、B1。
(4)计算差值(S1-W1)和(S2-B1)的绝对值A1、A2。
(5)如果A1>A2,原水印第M块被黑色校正结果的第M块置换。
(6)如果A1<A2,原水印第M块被白色校正结果的第M块置换。
如果想使信号进一步放大,则第(5)步用纯黑块置换,第(6)步用纯白块置换。
以下是部分代码:
blocksize=18;
for (q=0:1)
for (k=0:8)
w=0;//初始化差值A1
b=0; //初始化差值A2
for (i=1+q*10:10+q*10)
for (j=1+10*k:10+k*10)
w=255-Iw(i,j)+w;
b=Ib(i,j)+b;
end
end
if (w<b) //比较差值A1和A2
for (i=1+q*10:10+q*10)
for (j=1+10*k:10+k*10)
J4(i,j)=255;//置换
end
end
else
for (i=1+q*10:10+q*10)
for (j=1+10*k:10+k*10)
J4(i,j)=0; 置换
end
end
end
end
end
王小胖重新学编程
2006-02-16
打赏
举报
回复
高手能不能给我提示一下加入阿,谢谢了,如果有提取得,给1000也行
polarman
2006-02-16
打赏
举报
回复
加水印简单,关键在提取,这个问题能值1000分。图像特征提取太复杂
程序设计
与算法训练课程设计:二值图像
数字水印
技术实践
课程设计, 合肥工业大学,
程序设计
与算法训练, 数据结构, 二值图像
数字水印
技术的实践,https://github.com/25thengineer/Data-Structure-Course-Design-Practice-of-Binary-Image-Digital-Watermarking-Technology
数字水印
的基础程序
在
数字水印
实现中,开发者可以利用OpenCV、MATLAB等图像处理库,结合VC++的多线程和文件操作功能,设计和实现各种水印算法。 5. 压缩包中的"WaterMark不盲"可能是指该程序或代码集并不针对特定的水印检测方法,即非...
一个
数字水印
的VC++源程序,支持图片
数字水印
,功能可用!
在这个VC++源程序中,它实现了对图片添加
数字水印
的功能,使得原始图片在经过水印处理后,既保持了视觉上的完整,又能隐藏特定的信息,为版权保护提供了有效手段。 在
数字水印
的实现过程中,通常涉及以下几个关键...
音频
数字水印
报告matlab
程序设计
.doc
音频
数字水印
报告matlab
程序设计
.doc
stirmark
数字水印
攻击软件并包含源代码
这也提醒了我们在设计和应用
数字水印
时需要考虑其抗攻击性,确保水印难以被探测和去除。 【压缩包子文件的列表】提供了更多线索。Compilation.doc可能是编译指南,解释如何构建和运行STIRMARK项目。Copyright ...
Java SE
62,624
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章