声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间头像私信联系我删除博客!
前言
用了ddddocr和别人发的数据集。随便测了一下,腾讯图标点选每次都有一个关键的坐标是ddddocr识别不了的所以要提高成功还得自己动手进行标注数据集。孪生部分就比较简单我就不展开说说一下解决思路。这里不解释collect的处理和滑块一样之前已经弄了两篇博客了。
腾讯图标点选分析
切割图片识别坐标
def recognize(): with open("1.png", 'rb') as f: image = f.read() bboxes = det.detection(image) print(bboxes) im = cv2.imread("1.png") idx = 1 for bbox in bboxes: x1, y1, x2, y2 = bbox im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2) # 裁剪出小图标 cropped_icon = im[y1:y2, x1:x2] # 保存裁剪后的图标 cv2.imwrite(f"./icons/icon_{idx}.png", cropped_icon) # 使用bbox作为文件名的一部分以区分图标 idx += 1 cv2.imwrite("result.jpg", im)
孪生部分解决后通过一个笛卡尔积进行最佳匹配。我这用到了选择排序原理取最大值。
combine=[] max_score = 0 for i in range(len(os.listdir(target_path))): max_score=0 for j in range(len(os.listdir(icons_path))): xsd = getdata(f'./target/{i+1}.png', f'./icons/icon_{j+1}.png') if max_score<xsd: max_score=xsd idx=j+1 combine.append([i+1, idx])