簡體   English   中英

如何更改圖像對比度(窗口中心和寬度)並在QLabel(Python3.5,Qt5.1)中顯示

[英]How to change the image contrast (window center and width) and display in QLabel(Python3.5, Qt5.1)

我需要根據窗口中心和窗口寬度調整圖像對比度,然后在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']后,顯示圖像看起來相同

有人遇到同樣的問題嗎? 請幫幫我,謝謝。 g

我找到了解決方案。

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM