我希望能够拍摄一个opencv屏幕截图图像,并对其应用图像跟踪。但是我得到这个错误:
AttributeError: 'numpy.ndarray' object has no attribute 'read'
我使用win32api截屏,然后使用opencv将其转换为numpy数组。
我看过的教程都涉及到使用网络摄像头,显然,您将使用___。read()从中读取的框架与opencv屏幕截图图像不同。
我当时正在考虑使用OBS或其他流服务将视频发送到python,然后一切正常,但是我什么都没找到。
我尝试将屏幕截图转换为视频,然后执行read()函数,但是没有任何效果。
主要python文件(在while循环中)
if __name__ == '__main__':
screen = g.grab_screen(region = (0, 0, 640, 480))
scr = screen.copy()
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
vid = cv2.VideoWriter('output.avi', fourcc, 6, (640,480))
vid.write(screen)
frame = screen.read()
# Update tracker
ok, bbox = tracker.update(frame)
grab_screen()来自自定义的python文件,该文件使用win32api进行屏幕截图,然后返回图像,然后您可以对其执行cv2.cvtcolour()。