opencv获取手机屏幕内容
技术栈
下载scrcpy
win: github.com/Genymobile/scrcpy/blob/...
- 解压
- cmd进入到解压后目录
- 手机链接电脑
adb.exe devices
scrcpy.exe --video-codec=h265 --max-size=800 --max-fps=60 --no-audio --window-title='phone'
然后就可以看到窗口:
看视频非常的流畅,感知不到延迟。
--video-codec=h265 --max-size=800 --max-fps=60 --no-audio --window-title='phone
参数解释:
--video-codec=h265: 使用h265
--max-size=800 宽度最大尺寸800 (我屏幕3200*1440,不想处理太大的图 所以设置800)
--max-fps=60 最大60帧
--no-audio 无声音
--window-title='phone' 窗口标题设置为phone
获取scrcpy的窗口
import cv2
import numpy as np
import mss
import pygetwindow as gw
windows = gw.getWindowsWithTitle('phone')
if not windows:
raise Exception("scrcpy窗口未找到")
window = windows[0]
bbox = (window.left, window.top, window.right, window.bottom)
id = 0
with mss.mss() as sct:
while True:
screen = sct.grab(bbox)
img = np.array(screen)
# 将BGR转换为RGB
img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)
# 获取了img 就可以自定义处理
id += 1
if id % 30 == 0:
print(img.shape[:2]) # 打印图片尺寸
# 在OpenCV窗口中显示
cv2.imshow("opencv show", img)
# 按'q'键退出
if cv2.waitKey(10) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
本作品采用《CC 协议》,转载必须注明作者和本文链接