zoukankan      html  css  js  c++  java
  • aircv 基于Python-opencv2的目标定位。

    软件简介

    Aircv是一款基于Python-opencv2的目标定位。

    用法

    import aircv as ac
    imsrc = ac.imread('youimage.png') # 原始图像
    imsch = ac.imread('searched.png') # 带查找的部分

    SIFT查找图像

    print ac.find_sift(imsrc, imsch)
    # - when Not found
    @return None 
    # 之前是返回的 []
    # - when found
    @return {'point': (203, 245), 'rectangle': [(160, 24), (161, 66), (270, 66), (269, 24)], 'confidence': 0.09}
    # point: 查找到的点
    # rectangle: 目标图像周围四个点的坐标
    # confidence: 查找图片匹配成功的特征点 除以 总的特征点

    SIFT多个相同的部分查找

    print ac.find_all_sift(imsrc, imsch, maxcnt = 0)
    # when not found
    @return []
    # - when found
    @return [{..}, {..}]
    # {..}的内容跟SIFT查找到单个图像的格式一样

    maxcnt是可选参数,限制最多匹配的数量。

    直接匹配查找图像

    print ac.find_template(imsrc, imsch)

    期望输出 (目标图片的中心点,相似度), 相似度是电脑计算出来的一个值,跟平常所说的相似97%不是一个意思。对于这个值,达到0.999以上才算是图片一样。

    (294, 13), 0.9715

    查找多个相同的图片,如在图形1中查找图形2

    print ac.find_all_template(imsrc, imsch)

    期望输出 (目标图片的中心点,相似度)

    [((294, 13), 0.9715), ...]

    示例

    import aircv
    
    imsrc = aircv.Image('demo.png')
    imobj = aircv.Image('object.png')
    
    print imsrc.find(imobj, method=aircv.FIND_TMPL) # or method=aircv.FIND_SIFT
    # expect aircv.Position(x=10, y=20, extra={'method': aircv.FIND\_TMPL, 'result': 0.98})
    
    print imobj.find_in(imsrc, method=aircv.FIND_TMPL)
    # expect aircv.Position(x=10, y=20)
    
    rect = aircv.Rect(left=80, top=10, width=50, height=90)
    # Rect define: Rect(left=0, top=0, right=None, bottom=None, width='100%', height='100%')
    pos = imsrc.find(imobj, rect=rect, method=aircv.FIND_TMPL)
    print pos
    # expect aircv.Position(x=10, y=20)
    print imsrc.draw_point(pos) # .draw_point(pos2)
    # expect aircv.Image object
    
    print imsrc.draw_rectangle(aircv.Rect(left=80))
    # expect aircv.Image object
    
    print imsrc.draw_circle(??)
    
    print imsrc.cv_object
    # expect numpy object
    
    imsrc.save('source.png')
    # An Exception raised when file exists
    
    print imsrc.rect() == imobj.rect()
    # expect True or False
    
    print imsrc.percent(imobj)
  • 相关阅读:
    5.6 Go 常用函数
    5.5 Go defer
    5.4 Go 闭包
    5.3 Go 匿名函数
    5.2 Go 包与函数
    python 通过pytz模块进行时区的转换,获取指定时区的时间
    前端在js中获取用户所在地区的时间与时区
    Python2 指定文件编码格式需要注意的地方
    linux 使用进程管理工具 supervisor
    Python 私有变量中两个下划线 _ _item 与 一个下划线的区别 _item
  • 原文地址:https://www.cnblogs.com/llx--20190411/p/15338367.html
Copyright © 2011-2022 走看看