zoukankan      html  css  js  c++  java
  • 学习OpenCV

    前言

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
    使用OpenCV可以方便的进行图像识别和图像处理,因此我打算学习学习。OpenCV在安装Python环境非常简单只需要下载opencv-2.4.9.exe安装。
    将"opencvuildpython2.7x64"或"opencvuildpython2.7x86"文件夹中cv2.pyd,复制到Python安装的"C:Python27Libsite-packages"文件夹中。

        下面是测试代码:

    #导入cv模块
    import cv2 as cv
    #读取图像,支持 bmp、jpg、png、tiff 等常用格式
    img = cv.imread("D:python	est.jpg")
    #创建窗口并显示图像
    cv.namedWindow("Image")
    cv.imshow("Image",img)
    cv.waitKey(0)
    #释放窗口
    cv2.destroyAllWindows() 
    

    但是Python库已经把OpenCV的大部分接口都封装了,看不到内部逻辑,不过上手快额。我这里是使用go语言调用OpenCV完成一个项目。

    goOpenCv项目

    项目地址【Gitee】,【Github】,大家可自行拿去学习。
    本项目通过go语言获取截屏连连看的图像,通过OpenCV识别连连看每一个动物,进行匹配标记相同动物所处位置,并实现算法模拟鼠标点击来玩连连看游戏。
    主要使用opencv2.4.9版本,通过cgo调用相关dll中的方法,特别注意我使用的第三方库(go调用OpenCV库)有很多接口都没有实现,我通过查看OpenCV的.h头文件查看所需方法自己实现。
    OpenCvPath/src/github.com/go-opencv/go-opencv/opencv/janbar.go文件中的几个OpenCV方法就是我实现的,大家可以参考自行添加自己需要的方法吧。
    关于本项目的安装教程,以及编译方法都在readme里面,需要注意的是要用runPet.exe来运行pet.swf,让窗口保持合适大小,因为图像匹配需要精确大小。

        下面是效果图:

    总结

    通过本项目学习了OpenCV的基本用法,其实OpenCV能做到的还有很多,这里也只是粗略学习了一下。以后有别的图像方面需求,可以快速上手就行。
    通过这个项目加深了对go从国cgo调用dll库的认识,不像Python那样啥都弄好了。要做到知其然并知其所以然,这样才能游刃有余的应对各种问题。
    玩连连看的算法也是超级简单,不过还是锻炼了一把我的编码和思考能力。我感觉我越来越有写外挂的天赋了,哈哈。

  • 相关阅读:
    WeChat-SmallProgram:组件 scroll-view 横向和纵向 案例
    Codeforces Round #277 (Div. 2) D. Valid Sets 树形DP
    Codeforces Round #243 (Div. 2) E. Sereja and Two Sequences DP
    Codeforces Round #263 (Div. 2) D. Appleman and Tree 树形dp
    Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest 状压DP
    Codeforces Round #274 (Div. 2) E. Riding in a Lift DP
    HDOJ 6069 素数筛
    在平面中,一个点绕任意点旋转θ度后的点的坐标
    HDOJ 5724 博弈SG函数
    Codeforces Round #422 (Div. 2) C. Hacker, pack your bags! 排序+贪心
  • 原文地址:https://www.cnblogs.com/janbar/p/13895487.html
Copyright © 2011-2022 走看看