如何选择屏幕区域以在python中记录屏幕

问题描述 投票:0回答:1

我正在创建一个屏幕录像机,下面的代码工作正常。但是现在我只想捕获由鼠标(光标)选择的仅该部分的区域。

我该怎么做。

import cv2
import numpy as np
import datetime
from PIL import Image, ImageTk, ImageGrab

date = datetime.datetime.now()
filename='rec_%s-%s-%s-%s%s%s.mp4' % (date.year, date.month, date.day,
                                                     date.hour, date.minute, date.second)

fourcc = cv2.VideoWriter_fourcc(*'X264')
frame_rate = 16
SCREEN_SIZE = (960,540)
out = cv2.VideoWriter(filename, fourcc,framerate, SCREEN_SIZE)

while True:
        img = ImageGrab.grab()
        frame = np.array(img)

        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
        out.write(frame)
        cv2.imshow('screenshot', frame)

        if cv2.waitKey(1) == ord("q"):
            break
cv2.destroyAllWindows()
out.release()
python-3.x opencv python-imaging-library screenshot
1个回答
0
投票

一旦按下键“ c”,就会开始裁剪的鼠标事件,然后您可以选择感兴趣的区域。再次按下键“ c”时,将保存裁剪坐标,所有后续裁剪的帧都将存储在self.cropped_image

出于某种原因,在共享所有代码后,格式就会发疯。我已经在github gist中托管了代码。希望这会有所帮助。

https://gist.github.com/mesakarghm/a7dd844c329cca8ec1ab492669c7356c

© www.soinside.com 2019 - 2024. All rights reserved.