def getScreen():
# Grab image and crop it to the desired window. Find pixel borders manually.
box = (left, top, right, bottom)
im = ImageGrab.grab().crop(box)
#im.save('testcrop.jpg') # optionally save your crop
for y in reversed(range(8)):
for x in reversed(range(8)):
#sqh,sqw are the height and width of each piece.
#each pieceim is one of the game piece squares
piecebox = ( sqw*(x), sqh*(y), sqw*(x+1), sqh*(y+1))
pieceim = im.crop(piecebox)
#pieceim.save('piececrop_xy_'+ str(x) + str(y) + '.jpg')
stats = ImageStat.Stat(pieceim)
statsmean = stats.mean
Rows[x][y] = whichpiece(statsmean)
我已经找到了一种使用Imagegrab和ImageStat来处理PIL的方法。以下是抓取屏幕并裁剪到游戏窗口:
上面的代码为所有64个片段创建一个图像,标识piecetype,并将其存储在数组“Rows”中。然后我用统计平均值并将它们存储在字典(rgbdict)中。将所有输出复制到Excel中,并按颜色类型筛选以获得这些平均值。然后我使用RSS方法和字典将图像与已知的片段类型进行统计匹配。(RSS参考号:http://www.charlesrcook.com/archive/2010/09/05/creating-a-bejeweled-blitz-bot-in-c.aspx)
^{pr2}$有了这两个功能,屏幕就可以被刮掉,电路板的状态就可以被转换成一个数组,在这个数组上可以决定动作。如果这对任何人都有帮助的话,祝你好运,如果你微调了移动选择器,请告诉我。在
相关问题 更多 >
编程相关推荐