现有A、B2张图片,其中A是从B中截取下来的图片,使用python怎么获取到A在B中的坐标

huishoulanshan2011 2015-09-13 09:46:03
现有A、B2张图片,其中A是从B中截取下来的图片,使用python怎么获取到A在B中的坐标,请详细解答,最好有例子
...全文
313 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
abxialiang 2015-09-24
  • 打赏
  • 举报
回复
注意必须都是一手bmp格式图片
abxialiang 2015-09-24
  • 打赏
  • 举报
回复 1
给你写了一个可以直接用方法,要安装pillow,可以在cmd中"pip install pillow"

def get_screenxy_from_bmp(main_bmp,son_bmp):
    #获取屏幕上匹配指定截图的坐标->(x,y,width,height)
    from PIL import Image

    img_main=Image.open(main_bmp)
    img_son=Image.open(son_bmp)
    datas_a=list(img_main.getdata())
    datas_b=list(img_son.getdata())
    for i,item in enumerate(datas_a):
        if datas_b[0]==item and datas_a[i+1]==datas_b[1]:
            yx=divmod(i,img_main.size[0])
            main_start_pos=yx[1]+yx[0]*img_main.size[0]

            match_test=True
            for n in range(img_son.size[1]):
                main_pos=main_start_pos+n*img_main.size[0]
                son_pos=n*img_son.size[0]

                if datas_b[son_pos:son_pos+img_son.size[0]] != datas_a[main_pos:main_pos+img_son.size[0]]:
                    match_test=False
                    break
            if match_test:
                return (yx[1],yx[0],img_son.size[0],img_son.size[1])
    return False

print get_screenxy_from_bmp(u'D:/a.bmp',u'D:/b.bmp')

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧