最近遇到一个问题,之前的一个爬虫脚本不能使用了,发现网站验证码更改了,更改成类似12306那样验证,但是图片是他们自己做的黑白卡通图片,
尝试了使用阿里云图像识别几乎无法识别,准备利用百度识图和谷歌识图也无法识别,就类似下面这种:
最后决定自己建立图像库,也就是尽量多的爬取目标网站的验证码图片,然后分别将图片特征存储,然后人工对应名字,随着时间的累计就会形成一个自己的图像库。
之后每次进行验证识别时,先获取图片特征,然后再和图像库匹配,从而识别出图片内容。
以上只是设想,还没开始行动,既然使用opencv,首先就是opencv的安装了。
因为我使用的是python,然后我发现pypi有opencv的包,然后就天真的以为pip一下就ok了,然后看文档,但是文档代码执行时疯狂报错,最后发现需要自己编译安装(一个同事以前搞过,告诉我的)。
opencv分opencv2和opencv3(源码包地址https://opencv.org/releases.html)
opencv3安装文档(https://docs.opencv.org/3.4.1/d2/de6/tutorial_py_setup_in_ubuntu.html)
但是执行文档代码还是报错,谷歌了一下发现是这个问题(其实就是我看的文档适用于opencv2,不适用opencv3),参考stackoverflow:
https://stackoverflow.com/questions/18561910/cant-use-surf-sift-in-opencv/25626875
安装完成之后到python的site-packages目录下找到cv2.so(opencv3我安装的和这个不同,不过都是cv2开头) 文件,然后拷贝到自己的虚拟环境中。
至此安装完成。
中文部分文档(博客园中的博客)