Aircv是一款基于Pytho-opecv2的目标定位。
用法
import aircv as acimsrc = ac.imread('youimage.pg') # 原始图像imsch = ac.imread('searched.pg') # 带查找的部分SIFT查找图像
prit ac.fid_sift(imsrc, imsch)# - whe Not foud@retur Noe # 之前是返回的 []# - whe foud@retur {'poit': (203, 245), 'rectagle': [(160, 24), (161, 66), (270, 66), (269, 24)], 'cofidece': 0.09}# poit: 查找到的点# rectagle: 目标图像周围四个点的坐标# cofidece: 查找图片匹配成功的特征点 除以 总的特征点SIFT多个相同的部分查找
prit ac.fid_all_sift(imsrc, imsch, maxct = 0)# - whe ot foud@retur []# - whe foud@retur [{..}, {..}]# {..}的内容跟SIFT查找到单个图像的格式一样maxct是可选参数,限制最多匹配的数量。
直接匹配查找图像
prit ac.fid_template(imsrc, imsch)期望输出(目标图片的中心点,相似度),相似度是电脑计算出来的一个值,跟平常所说的相似97%不是一个意思。对于这个值,达到0.999以上才算是图片一样。
(294, 13), 0.9715查找多个相同的图片,如在图形1中查找图形2
prit ac.fid_all_template(imsrc, imsch)期望输出(目标图片的中心点,相似度)
[((294, 13), 0.9715), ...]示例
import aircvimsrc = aircv.Image('demo.pg')imobj = aircv.Image('object.pg')prit imsrc.fid(imobj, method=aircv.FIND_TMPL) # or method=aircv.FIND_SIFT# expect aircv.Positio(x=10, y=20, extra={'method': aircv.FIND\_TMPL, 'result': 0.98})prit imobj.fid_i(imsrc, method=aircv.FIND_TMPL)# expect aircv.Positio(x=10, y=20)rect = aircv.Rect(left=80, top=10, width=50, height=90)# Rect defie: Rect(left=0, top=0, right=Noe, bottom=Noe, width='100%', height='100%')pos = imsrc.fid(imobj, rect=rect, method=aircv.FIND_TMPL)prit pos# expect aircv.Positio(x=10, y=20)prit imsrc.draw_poit(pos) # .draw_poit(pos2)# expect aircv.Image objectprit imsrc.draw_rectagle(aircv.Rect(left=80))# expect aircv.Image objectprit imsrc.draw_circle(??)prit imsrc.cv_object# expect umpy objectimsrc.save('source.pg')# A Exceptio raised whe file existsprit imsrc.rect() == imobj.rect()# expect True or Falseprit imsrc.percet(imobj)









评论