如何解决如何在python opencv中插入特定的numpy数组?
我正在尝试通过win32模块实现屏幕捕获,我发现了一个输出屏幕像素数组的函数,我试图通过numpy在cv2中插入,但是出现错误:
cv2.error: OpenCV(4.4.0) C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-52oirelq/opencv/modules/highgui/src/precomp.hpp:137: error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow'
这是我使用的代码:
import win32gui,win32ui,win32con,cv2
import numpy as np
def foo(width,height):
hwnd = win32gui.GetDesktopWindow()
hdc = win32gui.GetWindowDC(hwnd)
dc = win32ui.CreateDCFromHandle(hdc)
memdc = dc.CreateCompatibleDC()
bitmap = win32ui.CreateBitmap()
bitmap.CreateCompatibleBitmap(dc,width,height)
oldbmp = memdc.SelectObject(bitmap)
memdc.BitBlt((0,0),(width,height),dc,(0,win32con.SRCCOPY)
bits = bitmap.GetBitmapBits(False)
memdc.SelectObject(oldbmp)
win32gui.DeleteObject(bitmap.GetHandle())
memdc.DeleteDC()
win32gui.ReleaseDC(hwnd,hdc)
return bits
width = 100
height = 100
bits = foo(width,height)
img = []
line = []
for y in range(0,10):
for x in range(0,10):
p = (y * width + x) * 4
blu = bits[p + 0] & 0xFF
grn = bits[p + 1] & 0xFF
red = bits[p + 2] & 0xFF
line.append([blu,grn,red])
img.append(line)
line = []
img = np.array(img)
cv2.imshow("CO-4",img)
cv2.waitKey(0)
如何解决此错误?该功能针对我的目的设计得如何?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。