fire-keeper/BlindWatermark

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

Closed this issue · 3 comments

修改了图片尺寸的时候,就无法提取了。。
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)

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

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

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