会写bug的大佬 2022-09-10 21:58

python3.7 + opencv4.2.0 全屏循环显示文件夹中所有图像,图像分辨率等于屏幕分辨率,屏幕四周出现白色像素边框

问题遇到的现象和发生背景
python3.7 + opencv4.2.0 全屏循环显示文件夹中所有图像,图像分辨率等于屏幕分辨率,屏幕四周出现白色像素边框

问题相关代码,请勿粘贴截图
window_name = “Pattern”
cv2.namedWindow(window_name, cv2.WINDOW_NORMAL)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
cv2.imshow(window_name, img)
cv2.waitKey(100)

运行结果及报错内容
所显示图像与显示器分辨率大小相同,但屏幕显示出来四周有很窄的白色像素边框,图像显示内容也经过了压缩

我的解答思路和尝试过的方法
网上思路:
import win32api, win32gui
window_name = “Pattern”
cv2.namedWindow(window_name, cv2.WINDOW_NORMAL)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
hwndMain = win32gui.FindWindow(None, window_name)
rgb = win32gui.CreateSolidBrush(win32api.RGB(0, 0, 0))
GCLP_HBRBACKGROUND = -10
win32api.SetClassLong(hwndMain, GCLP_HBRBACKGROUND, rgb)
cv2.imshow(window_name, img)
cv2.waitKey(100)
虽然边框被去除,但是显示出的图像经过处理,不为图像原始分辨率:与有白色像素边框时所显示的 内容经压缩的图像 相同

我想要达到的结果
去除白色边框,显示正确分辨率的图像。
或者不用opencv,能正确全屏for循环显示文件夹中所有图像正确分辨率的方法也可