在kali中运行BlindWaterMark-master脚本,无论是bwm.py还是bwmforpy3.py都会报错,报错如下
运行bwm.py报错
python2 bwm.py decode day1.png day2.png res.png
会提示 ImportError: No module named cv2。
主要是kali中的python2没有opencv-python库,需要手动安装。
直接安装时发现自己下载的kali中,默认的pip是对应python3的,没法直接安装opencv-python。这里参考:
【kali linux 中python2不带pip的解决方法】(https://cnblogs.com/lzkalislw/p/15579620.html)
先获取get-pip.py:
wget https://bootstrap.pypa.io/pip/2.6/get-pip.py
安装get-pip.py,出现报错就再运行一次,一般是因为网速不行报错:
sudo python2 get-pip.py
安装后通常提示pip版本过低,要升级:
pip2 install --upgrade pip
安装并升级过后,已经可以使用pip2指令了,并且pip的指令也会改成默认对应python2,如果还有报错请参考【kali linux 中python2不带pip的解决方法】进行安装工具的升级。
接下来安装opencv-python,我这里用清华源直接安装会报错,所有选择了指定版本安装,原本blindwatermark-master要求opencv-python==4.2.0.34,但是清华源没有这个版本,实测4.2.0.32也可以使用。
然后取运行bwm.py脚本,缺少什么库就安装什么。
缺少matplotlib:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
缺少_tkinter,参考Python下"No module named _tkinter"问题解决过程总结_no module named tkinter-CSDN博客:
sudo apt install python-tk
然后就可以成功运行bwm.py脚本了:
运行结果如下:
运行bwmforpy3.py报错
python3 bwmforpy3.py decode hui.png hui_with_wm.png wm_from_hui.png –oldseed
提示报错:
去掉–oldseed可以运行,但是无法解密用python2加密的图片,看了一下报错似乎时脚本参数有问题,暂时不知道如何解决。