如何在QLabel(Python3.5,Qt5.1)中更改图像对比度(窗口中心和宽度)和显示

如何在QLabel(Python3.5,Qt5.1)中更改图像对比度(窗口中心和宽度)和显示,python,pyqt,pyqt5,qimage,qlabel,Python,Pyqt,Pyqt5,Qimage,Qlabel,我需要根据窗口中心和窗口宽度调整图像对比度,然后在QLabel中显示。目前,代码是:(“self”在下面的代码中是从QLabel继承的子类,函数“qimage2ndarray.gray2qimage”用于将python变量(disImg)更改为QT变量(QImg)) 但是,该图像只是一个黑色图像 我认为通过将强度标准化为0~255,可以解决该问题,如: self.contrast['center']=-71 self.contrast['width']=800 disImg = (self.or

我需要根据窗口中心和窗口宽度调整图像对比度,然后在QLabel中显示。目前,代码是:(“self”在下面的代码中是从QLabel继承的子类,函数“qimage2ndarray.gray2qimage”用于将python变量(disImg)更改为QT变量(QImg))

但是,该图像只是一个黑色图像

我认为通过将强度标准化为0~255,可以解决该问题,如:

self.contrast['center']=-71
self.contrast['width']=800
disImg = (self.originalImg-self.contrast['center'])/self.contrast['width']+0.5
# normalization to 0~255
MIN = disImg.min()
MAX = disImg.max()
normImg = (disImg-MIN)/(MAX-MIN)
normImg = normImg*255
QImg = qimage2ndarray.gray2qimage(normImg)
self.setPixmap(QPixmap.fromImage(QImg))
当我使用上述代码时,图像可以正确显示。但是改变self.contrast['center']和self.contrast['width']后,显示图像看起来是一样的

有人遇到同样的问题吗?请帮帮我,先谢谢你。
我找到了解决办法

QLabel的焦点在0~255之间。对于显示图像,我们将小于0的像素设置为0,大于255的像素设置为255。然后,QLabel正确显示图像,对比度正常。代码是:

    MIN = (2*self.contrast['center'] - self.contrast['width'])/2.0 + 0.5
    MAX = (2*self.contrast['center'] + self.contrast['width'])/2.0 + 0.5
    dFactor = 255.0/(MAX-MIN)
    disImg = (self.originalImg - MIN)*dFactor
    disImg[disImg<0] = 0
    disImg[disImg>255] = 255
    QImg = qimage2ndarray.gray2qimage(disImg)
    self.setPixmap(QPixmap.fromImage(QImg))
MIN=(2*self.contrast['center']-self.contrast['width'])/2.0+0.5
最大值=(2*自对比度['中心]+自对比度['宽度])/2.0+0.5
dFactor=255.0/(最大-最小)
disImg=(self.originalImg-MIN)*dFactor
disImg[disImg255]=255
QImg=qimage2ndarray.gray2qimage(disImg)
self.setPixmap(QPixmap.fromImage(QImg))
    MIN = (2*self.contrast['center'] - self.contrast['width'])/2.0 + 0.5
    MAX = (2*self.contrast['center'] + self.contrast['width'])/2.0 + 0.5
    dFactor = 255.0/(MAX-MIN)
    disImg = (self.originalImg - MIN)*dFactor
    disImg[disImg<0] = 0
    disImg[disImg>255] = 255
    QImg = qimage2ndarray.gray2qimage(disImg)
    self.setPixmap(QPixmap.fromImage(QImg))