警告:QT_DEVICE_PIXEL_RATIO 已弃用

新手上路,请多包涵

我将 matplotlib 与 openCV 一起使用来绘制一些阈值方法,并抛出以下没有输出的警告:

警告:QT_DEVICE_PIXEL_RATIO 已弃用。而是使用:

QT_AUTO_SCREEN_SCALE_FACTOR 启用平台插件控制的每个屏幕因子。 QT_SCREEN_SCALE_FACTORS 设置每屏系数。 QT_SCALE_FACTOR 设置应用程序全局比例因子。

我正在使用 Ubuntu 19.04

 import cv2 as cv
from matplotlib import pyplot as plt

img = cv.imread('gradient.jpg', 0)

_, th1 = cv.threshold(img, 50, 255, cv.THRESH_BINARY)
_, th2 = cv.threshold(img, 200, 255, cv.THRESH_BINARY_INV)
_, th3 = cv.threshold(img, 200, 255, cv.THRESH_TRUNC)
_, th4 = cv.threshold(img, 127, 255, cv.THRESH_TOZERO)
_, th5 = cv.threshold(img, 127, 255, cv.THRESH_TOZERO_INV)

titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
images = [img, th1, th2, th3, th4, th5]

for i in range(6):
    plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])

原文由 Saif 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

谢谢你们。对我来说,只有 Elyte 的回答 才能解决问题。要在 python 中使用它,您可以使用:

 from os import environ

def suppress_qt_warnings():
    environ["QT_DEVICE_PIXEL_RATIO"] = "0"
    environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"
    environ["QT_SCREEN_SCALE_FACTORS"] = "1"
    environ["QT_SCALE_FACTOR"] = "1"

if __name__ == "__main__":
    suppress_qt_warnings()

    # Init QT etc...

原文由 Spacha 发布,翻译遵循 CC BY-SA 4.0 许可协议

我使用与@elyte5star 相同的方法解决了这个问题。在运行程序之前,在终端中运行以下命令:

 export QT_DEVICE_PIXEL_RATIO=0
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_SCREEN_SCALE_FACTORS=1
export QT_SCALE_FACTOR=1

原文由 chilin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题