chishaxie/BlindWaterMark

图片处理水印时间长达10秒,这正常吗?

Opened this issue · 4 comments

Zola commented

感谢你的代码。
我的电脑是3.4G的CPU,12G内存,SSD硬盘,通常处理视频都很快。但刚才测试多次,压缩800×600的图片的所用时间都超过10秒。

我体验了另一个盲水印代码,发现他的水印处理速度很快,但水印不是对称的。
https://github.com/linyacool/blind-watermark

我想知道哪部分会导致计算量上升?是否可以提升压缩速度?

我刚刚试了README里面的demo命令,在我的Mac i5下用了4秒多,然后粗略看了下代码(毕竟写了一年多了),应该是像素遍历没有优化导致的。 (PS:最近比较忙,短期不考虑优化)

Zola commented

@chishaxie 我一直在測試盲水印方案
有clojure写的:
http://clojure-china.org/t/topic/545
源代码: https://github.com/lostpupil/hidden-watermark

有java写的:
http://blog.csdn.net/chenxiao_ji/article/details/52875199

有nodejs写的:
https://cnodejs.org/topic/5a28db198230827a18293529
源代码:https://github.com/zy445566/node-digital-watermarking

其中有人提到“遇到的坑,我把傅里叶变换看成了快速傅里叶变换,所以图片需要2的幂像素的 长和宽”,是不是有可能优化到1秒以内?
(PS:以上内容仅供参考,我再仔细看看代码,谢谢你)

我测试了一下,也存在打水印时速度慢的问题,一张1080P的图片需要26秒,能不能提供一下优化的思路,感谢

@wzhvictor @chishaxie @Zola 我测试发现,将118行到151行删除,可以提升需渲染的速度(示例图片)。而且并不影响还原和解析。

目前发现一个问题:对加水印后的图片进行裁剪。就无法解析出水印了。这个需要自行进行扩展了。
图片被裁剪后,手动将被裁剪的图片图布,调整为原图大小则可以正常还原了。:)

顺便补充,使用其他图片进行测试,水印还原并不清晰。若对加水印的图片进行二次编辑,还原出来的水印并没有示例图片清晰。感觉代码还有提升空间。