OpenCV imshow window 渲染离屏;如何移动 imshow window?

OpenCV imshow window rendering off screen; how do I move an imshow window?

我有一个函数可以抓取命名应用程序 window 的屏幕截图并用 cv.imshow

显示它

但是 window 在屏幕外渲染。

import cv2 as cv

def videoLoop():
    window = pygetwindow.getWindowsWithTitle('App')[0]
    haystack_img = ImageGrab.grab(bbox=(750, 30, 1150, 78))
    haystack_img_np = np.array(haystack_img)
    haystack = cv.cvtColor(haystack_img_np, cv.COLOR_BGR2GRAY)
    test = cv.imshow("Ship Detection", haystack)
    cv.moveWindow(test, 1000,800)
    cv.waitKey(1)

我试过使用 cv.moveWindow,但出现 NULL 错误。

Failed capture: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window_w32.cpp:1515: error: (-27:Null pointer) NULL window: '' in function 'cvMoveWindow'

我还可以生成空白 window:

cv.imshow(test)
cv.moveWindow(test, 1000,800)
cv.waitKey(1)

但是当我尝试使用 haystack 时出现错误:Failed capture: Can't convert object to 'str' for 'winname'

cv.imshow("Ship Detection", haystack)
cv.moveWindow(haystack, 1000,800)
cv.waitKey(1)
cv.imshow("Ship Detection", haystack)
cv.moveWindow("Ship Detection", 1000,800)
cv.waitKey(1)

moveWindow 想要 window 名称而不是对象。