2

这个问题与这个问题有关: how to display a full screen images with python2.7 and opencv2.4

我想全屏显示黑色图像,我什至创建了具有相同屏幕分辨率的黑色图像。但是我在屏幕的顶部和左侧看到了一条白色的小条纹。我不知道这是我的屏幕未对齐还是我的代码的问题。我已经尝试了 2 个显示器并显示了白色条纹。

所以如果你在下面运行这段代码,你会得到一个全黑的图像吗?

import numpy as np
import cv2



    if __name__ == "__main__":
        img =  cv2.imread('nero.jpg')
        cv2.namedWindow("test", cv2.WND_PROP_FULLSCREEN)
        cv2.setWindowProperty("test", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
        cv2.imshow("test",img)
        cv2.waitKey(0)
        cv2.destroyAllWindows() 

编辑:这种方法对我不起作用。你知道显示全屏图像的另一种方式或库吗?

编辑 2:仍未解决,我开始认为这是一个 openCv 错误

4

2 回答 2

1

我有同样的问题,窗口左侧和顶部有一个 1 像素的白色条纹。用多台显示器对其进行了测试。OpenCV 版本 3.4.2

但是在我的情况下,有一种解决方法可以很好地工作(另请参见https://gist.github.com/goraj/a2916da98806e30423d27671cfee21b6)。这是代码:

import cv2
import win32api
import win32gui

cv2.namedWindow("fullScreen", cv2.WINDOW_FREERATIO)
cv2.setWindowProperty("fullScreen",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)

hwndMain = win32gui.FindWindow(None, "fullScreen")
rgb = win32gui.CreateSolidBrush(win32api.RGB(0, 0, 0))
GCLP_HBRBACKGROUND = -10
win32api.SetClassLong(hwndMain, GCLP_HBRBACKGROUND, rgb)

于 2020-05-11T15:16:44.593 回答
0

是的,我愿意。

img = np.zeros((900, 1600)) #my aspect ratio is 16x9
cv2.namedWindow("test", cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty("test", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
cv2.imshow("test",img)
cv2.waitKey(0)

给我一个全黑的屏幕。你确定你使用了正确的纵横比吗?

于 2013-07-30T16:31:02.530 回答