fire-keeper / BlindWatermark

使用盲水印保护创作者的知识产权using invisible watermark to protect creator's intellectual property
GNU General Public License v3.0
1.29k stars 180 forks source link

更改图片尺寸的时候无法提取 #4

Closed Stevenhuangqian closed 5 years ago

Stevenhuangqian commented 5 years ago

修改了图片尺寸的时候,就无法提取了。。 Traceback (most recent call last): File "bwm.py", line 57, in bwm.extract(args.ori_img,args.output) File "/Users/qianhuang/workspace/git_repos/BlindWatermark/BlindWatermark/BlindWatermark.py", line 314, in extract cv2.imwrite(out_wm_name,extract_wm.reshape(64,64)) ValueError: cannot reshape array of size 1024 into shape (64,64)

Stevenhuangqian commented 5 years ago

另外想请教下。怎么可以设置生成水印图的码率。因为1M的图片加了水印以后码率有变化,出来的size有点大,大概20%up。。所以想控制一下码率

fire-keeper commented 5 years ago

这个码率的问题,是由写成jpg文件的那一步决定的,cv2.imwrite在写JPG文件时可以传入压缩因子, 压缩因子越小, 码率越低, 具体可以参考百度或者我的attack.py里的JPEG压缩攻击里的写法 至于修改图片尺寸的问题, 现阶段的算法在提取水印时需要手动把图片缩放回原本大小, 而且也不能有位移, 以后可能会添加自动缩放回原本尺寸,抗旋转抗平移的程序, 但只能说在做了

fire-keeper commented 5 years ago

已经实现了把受到平移,旋转,缩放等攻击的图恢复到原始形状的算法了