Python刷江南百景图水井

思路

用adb截图传到电脑,用cv2识图,找到坐标,再用adb模拟点击。

代码:

从手机截图并传回电脑 命名 PictureName

def pull_screenshot(PictureName):
    #filename = datetime.datetime.now().strftime("%H%M%S") + '{}.png'.format(PictureName)
    #os.system('mv {}.png {}'.format(PictureName,filename))
    os.remove("{}.png".format(PictureName))
    os.system('adb shell screencap -p /sdcard/{}.png'.format(PictureName))
    os.system('adb pull /sdcard/{}.png ./{}.png'.format(PictureName,PictureName))
    return './{}.png'.format(PictureName)

cv2找图:

def search_returnPoint(img,template_name):
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    template_ = cv2.cvtColor(template[template_name], cv2.COLOR_BGR2GRAY)
    template_size = template[template_name+"_size"]
    result = cv2.matchTemplate(img_gray, template_,cv2.TM_CCOEFF_NORMED)
    #cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1)
    threshold = 0.7
    # res大于70%
    loc = np.where(result >= threshold)
    # 使用灰度图像中的坐标对原始RGB图像进行标记
    point = ()
    for pt in zip(*loc[::-1]):
        cv2.rectangle(img, pt, (pt[0] + template_size[1], pt[1] + + template_size[0]), (7, 249, 151), 2)
        point = pt
    if point==():
        return None,None,None
    return img,point[0]+ template_size[1] /2,point[1]

找图2,用来找水井位置的,水井位置摆放位置不同会影响找的位置,还有可能被UI遮挡。

#找图 返回前10个可能匹配的点列表
def search_returnPointList(img,template_name):
    template_ = template[template_name]
    template_size = template[template_name+"_size"]
    result = cv2.matchTemplate(img, template_, cv2.TM_SQDIFF)
    result2 = np.reshape(result, result.shape[0] * result.shape[1])
    sort = np.argsort(result2)
    pointList_ =[]
    for i in range(0,10):
        print(i)
        (y_, x_) = np.unravel_index(sort[i], result.shape)  # best match
        pointList_.append((x_+ template_size[1] / 2,y_))
        cv2.rectangle(
            img,
            (x_,y_),
            (x_ + template_size[1], y_ + template_size[0]),
            (200, 0, 0),
            4)
    return img, pointList_

用税课司自动收钱

源码:

https://gitee.com/nickdlk/Python_jiangnan

你可能感兴趣的:(python,python)