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那样啥都弄好了。要做到知其然并知其所以然,这样才能游刃有余的应对各种问题。
    玩连连看的算法也是超级简单,不过还是锻炼了一把我的编码和思考能力。我感觉我越来越有写外挂的天赋了,哈哈。

  • 相关阅读:
    [原]终于做了一个登陆页
    JDK 1.7环境变量的配置
    值类型和引用类型讲解,本人在大学时候的笔记,写给新手
    CDays2 习题一 (改进函数)及相关内容解析。Python 基础教程
    Winedt 7.0 Build: 20120321 永久试用方法 Winedt 7.0 破解
    Arduino 笔记。开篇
    What we find changes who we become.
    Python 中的POST/GET包构建以及随机字符串的生成。Python 初级应用
    CDays–2 完成核心功能 CMD模块 Python基础教程 cmd cli
    Python HDB3 AMI 编码与解码
  • 原文地址:https://www.cnblogs.com/janbar/p/13895487.html
Copyright © 2011-2022 走看看