我需要根据窗口中心和窗口宽度调整图像对比度,然后在QLabel中显示。目前,代码是:(以下代码中的'self'是继承自QLabel的子类,函数'qimage2ndarray.gray2qimage'用于将python变量(disImg)更改为QT变量(QImg))
self.contrast['center']=-71
self.contrast['width']=800
disImg = (self.originalImg-self.contrast['center'])/self.contrast['width']+0.5
QImg = qimage2ndarray.gray2qimage(disImg)
self.setPixmap(QPixmap.fromImage(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']
后,显示图像看起来一样有人遇到同样的问题吗?请帮助我,并提前感谢。 强
答案 0 :(得分:0)
我找到了解决方案。
在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))