Неправильная ширина и высота в ImgGrab - PullRequest
1 голос
/ 27 апреля 2019

Так что я пытаюсь получить изображение, основанное на двух щелчках, верхнем левом и нижнем правом углах, но когда я задаю значение высоты и высоты функции ImgGrab, я получаю различные значения от оригинала, как я могу это исправить?

Я полагаю, что когда я устанавливаю верхний левый угол на (0, 0) моего дисплея, я получаю правильные значения, но в любом другом месте я получаю неправильные.

def get_pos():
    input('Place the mouse on the top left corner of your game screen and 
        press enter ')
    topleft = mouse.position
    input('Do the same, but in the lower right corner')
    lowerright = mouse.position
    print('to start/stop running the program press "M", to exit the 
    program press "ESC"')
    ref = (lowerright[0] - topleft[0], lowerright[1] - topleft[1])
    pos_click = [(ref[0]*0.83 + topleft[0], ref[1]*0.37 + topleft[1]), 
            (ref[0]*0.42 + topleft[0], ref[1]*0.45 + topleft[1]), 
            (ref[0]*0.84 + topleft[0], ref[1]*0.79 + topleft[1]), 
            (ref[0]*0.50 + topleft[0], ref[1]*0.75 + topleft[1]),
            (topleft), (ref)]
    return pos_click

pos_click = get_pos()

img = ImageGrab.grab(bbox=(pos_click[4][0], pos_click[4][1], pos_click[5] 
[0], 
pos_click[5][1])) #x, y, w, h
img_np = np.array(img)
print('tamanho de img',img, 'tamanho ref', pos_click[5])
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
cv2.imshow("frame", frame)
cv2.waitKey(0)
cv2.destroyAllWindows()

Я ожидал, что переменная img будет иметь те же значения, что и pos_click[5]

...