Aircv 基于Python-opencv2的目标定位开源项目

我要开发同款
诺克萨斯2016年03月29日
116阅读
开发技术Python
所属分类程序开发、其他开发相关
授权协议MIT

作品详情

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

用法

import aircv as acimsrc = 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 aircvimsrc = 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 objectprint imsrc.draw_rectangle(aircv.Rect(left=80))# expect aircv.Image objectprint imsrc.draw_circle(??)print imsrc.cv_object# expect numpy objectimsrc.save('source.png')# An Exception raised when file existsprint imsrc.rect() == imobj.rect()# expect True or Falseprint imsrc.percent(imobj)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论