📜  PyQtGraph - 在图像视图中标准化图像(1)

📅  最后修改于: 2023-12-03 15:18:50.643000             🧑  作者: Mango

PyQtGraph - 在图像视图中标准化图像

简介

PyQtGraph是一个Python库,旨在提供灵活、高效和易于使用的数据可视化工具。其中一个功能是在图像视图中标准化图像,即调整图像的亮度、对比度和颜色以使其更易于观察和分析。

特点
  • 可标准化的图像类型包括灰度图像、RGB图像和带alpha通道的图像;
  • 维护图像部分的状态,使其能够在滑块、输入框等控件的帮助下进行更改;
  • 提供了许多默认配置的选项,也允许用户自定义选项;
  • 可嵌入PyQt、PySide等GUI工具包中;
使用指南
安装

安装PyQtGraph的最简单方法是使用pip命令:

pip install pyqtgraph
加载示例图像
import pyqtgraph as pg
from pyqtgraph.Qt import QtGui

app = QtGui.QApplication([])
win = pg.GraphicsLayoutWidget(show=True, title="Image Normalization")

img = pg.ImageItem()
img.setOpts(axisOrder='row-major')
img.load(np.asarray(Image.open('example.png')))
vb = win.addViewBox()
vb.addItem(img)

pg.QtGui.QApplication.instance().exec_()
标准化图像
# 创建标准化选项
opts = pg.ImageNormalizeOptions(
    scale='linear',
    autoContrast=True,
    autoLevels=True,
    clip=False,
    percentiles=(0.1, 99.9)
)

# 应用标准化选项
img.setLookupTable(img.getLookupTable(**opts))

支持的参数包括:

  • scale:亮度线性缩放的类型,可选 'linear'(线性)或 'log'(对数);
  • autoContrast:是否自动调整图像的对比度;
  • autoLevels:是否自动选择亮度级的范围;
  • clip:是否对亮度值进行剪切,以确保它们在[0, 1]之间;
  • percentiles:对自动调整亮度级别的限制,以保留top和bottom百分比的数据范围。
自定义标准化选项
# 自定义标准化选项
opts = pg.ImageNormalizeOptions(
    scale='linear',
    autoContrast=False,
    levelRange=(-1, 1),
    clip=True,
    percentiles=(1, 99)
)

# 应用标准化选项
img.setLookupTable(img.getLookupTable(**opts))
结论

通过使用PyQtGraph,开发者可以轻松地在图像视图中标准化图像,从而使其更易于观察和分析,使分析过程更高效。PyQtGraph还提供了大量自定义选项,使开发者能够根据自己的需求进行优化和扩展。