From 12cc9622c61f97a584d8b8a2bb8338997c5f854c Mon Sep 17 00:00:00 2001 From: huanglinrong <964157675@qq.com> Date: Sun, 3 Mar 2019 18:37:21 +0800 Subject: [PATCH] Feat(baotu):add baotu function --- image.py | 18 +++++++++++------- image/activity_label.png | Bin 0 -> 7592 bytes main.py | 28 ++++++++++++++++++++++------ 3 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 image/activity_label.png diff --git a/image.py b/image.py index a1206df..edef645 100644 --- a/image.py +++ b/image.py @@ -2,10 +2,9 @@ import cv2 class OpenCVImageMatcher(object): # 全图进行配对 - def match_sub_image(self, img_rgb ,imgfile): + def match_sub_image(self, cv_img ,imgfile): #加载原始RGB图像 - cv_img = np.array(img_rgb) - img = cv2.cvtColor(cv_img, cv2.cv.CV_BGR2RGB) + img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB) #创建一个原始图像的灰度版本,所有操作在灰度版本中处理,然后在RGB图像中使用相同坐标还原 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) @@ -21,10 +20,15 @@ def match_sub_image(self, img_rgb ,imgfile): #res大于70% loc = np.where( res >= threshold) locs = zip(*loc[::-1])# 列表 - if locs: - return (locs[0],locs[1],locs[0]+w,locs[1]+h) - else: - return None + + for pt in locs: + if pt: + return getpoint(( pt[0], pt[1], pt[0]+w, pt[1]+h)) + break + return None + +def getpoint(rect): + return (rect[0]+(rect[2]-rect[0])/2,rect[1]+(rect[3]-rect[1])/2) """ 图像识别的两套方案 diff --git a/image/activity_label.png b/image/activity_label.png new file mode 100644 index 0000000000000000000000000000000000000000..bfaf6ae579148819853dc05f26a4503631b3d384 GIT binary patch literal 7592 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