【发布时间】:2020-03-05 00:26:24
【问题描述】:
我有一个 ImageView,我想在不将显示(缩放、平移等)初始化为默认居中、非缩放视图的情况下更新图像。
我有一个更新图像像素值的过程,我希望能够在应用这些更改之前放大图像的某些区域以查看发生的局部修改。
但是,每次调用 setImage 来更新图像都会初始化图像在视图中的缩放和位置。
我尝试在更新图像之前保存 QTransform 并将此转换用作 setImage 的输入。这对生成的图像没有影响。
class myImageView(pg.ImageView):
def __init__(self):
......
def setImage(self, img, autoRange=True, autoLevels=True,
levels=None, axes=None, xvals=None, pos=None,
scale=None, transform=None, autoHistogramRange=True):
self.min_level, self.max_level = self.ui.histogram.getLevels()
# get the current transform
transform = self.imageItem.transform()
# update the image displayed
pg.ImageView.setImage(self, img, autoRange=autoRange, autoLevels=autoLevels,
levels=levels, axes=axes, xvals=xvals, pos=pos,
scale=scale, transform=transform, autoHistogramRange=autoHistogramRange)
# update the histogram
self.ui.histogram.setLevels(self.min_level, self.max_level)
# try to apply the transform to the image item
self.imageItem.setTransform(transform)
生成的图像会自动居中并重新初始化缩放。
有没有办法保留以前的缩放和翻译并再次应用它们?
【问题讨论】: