项目地址:https://gitee.com/janbar/goOpenCv
![258934cf12ec2f4bb392f87a14e1a760.gif](https://i-blog.csdnimg.cn/blog_migrate/d0562ade8483aeae2e93a7ba88ffa0d5.gif)
成果镇楼
介绍
由于偶然看到opencv这个技术,就想着学学,单纯的学API比较低效,因此想搞点小项目玩玩。因为opencv是处理图像相关的,其中一个让我比较感兴趣是模糊匹配,就是在一张图片上找到某个小图片出现位置。于是灵光一闪,连连看不就是让你肉眼找到相同图片连起来的游戏么,太适合来练手了。我选了一个flash小游戏:动物连连看,编程语言选择go语言。
安装教程
- 将.OpenCvPathlib*.dll拷贝到环境变量Path的任意一个目录
- 需要编译则要将.OpenCvPath的绝对路径加到GOPATH中,
注意OpenCvPath里面有很多我添加或修改了,和github原作者的略微不一样 - 可以去.OpenCvPathsrcgithub.comgo-opencvgo-opencvsamples看例子
- 另外分享一个好用工具,按键精灵带的工具"Picker.7z",用来分析窗口句柄和屏幕坐标很好用
使用说明
- 没啥特殊要求,可以参考.LianLianKan里面的例子,build.bat是编译脚本
- 由于是图像匹配,因此需要精确的坐标,因此需要进入.LianLianKanunPet中执行runPet.exe来启动swf游戏
- 启动游戏后不要改变窗口大小,点击开始游戏后,再cmd下执行LianLianKan.exe即可自动玩游戏咯
- 直接查看最上面的动图效果吧
总结
- 这次项目遇到一些难点,GitHub上goOpenCv库有些接口没有实现,因此只能到opencv的源码中找到对应方法,自己写CGO的代码扩展
- 其次就是连连看的算法,经过研究下来,发现也不是很难,收获颇丰
- 果然学习一个技术最好的方法就是做一个项目,不然只能沦为熟悉API的人