qwt/pyqt 图像绘图的自定义比例(像素到毫米转换)

Posted

技术标签:

【中文标题】qwt/pyqt 图像绘图的自定义比例(像素到毫米转换)【英文标题】:qwt/pyqt custom scale for image plot (pixel to mm conversion) 【发布时间】:2015-04-12 06:29:21 【问题描述】:

我决定使用guiqwt 作为我在 Python 中的主要绘图库,它运行良好。但是,我缺少一个等高线图功能,所以我必须在我的图像图中计算出我自己的等高线。使用 scikit 很容易。现在我的绘图显示了图像和顶部的轮廓。 x 和 y 方向的比例单位是像素,因为图像原始数据是按像素给出的,计算的轮廓也是如此。

我的问题是将像素比例转换为 e。 G。毫米尺度而不缩放图像。我想用代表测量距离的比例替换原始比例。距离以数组形式提供。

在我的第一次尝试中,我尝试通过创建一个新的并使用 QwtPlot::setAxisScaleDiv 来更改 AxisScaleDivision。但这似乎像缩放功能一样工作,因为图像被缩小到新的间隔。

这是我的一个小例子的代码:

from guiqwt.plot import ImageDialog
from guiqwt.builder import make
from skimage import measure
import numpy as np

data = np.random.rand(80,30)

contours = measure.find_contours(data, 0.1)

win = ImageDialog(edit=False, toolbar=True, wintitle="Contrast test", 
    options=dict(show_contrast=True))

img = make.image(data)

plot = win.get_plot()
plot.add_item(img)

for n, contour in enumerate(contours):
    curve = make.curve(contour[:, 1], contour[:, 0], 'k-')
    plot.add_item(curve)

win.show()

scaleEng = plot.axisScaleEngine(2)
scaleDiv = scaleEng.divideScale(20, 30, 5, 5, 0)

plot.setAxisScaleDiv(2, scaleDiv)
plot.replot()

语法非常接近qwt,所以我想任何熟悉qwt的人都可以帮助我:)

图像缩放应保持不变。只有轴应该重新计算为毫米级,然后,当然,在使用缩放功能时进行调整。

【问题讨论】:

【参考方案1】:

我使用完全不同的方法解决了这个问题。我使用了 guiqwt 的 xyimage 功能。但是,我也必须缩放我的轮廓。我上次错过了,这就是我发布问题的原因。

【讨论】:

以上是关于qwt/pyqt 图像绘图的自定义比例(像素到毫米转换)的主要内容,如果未能解决你的问题,请参考以下文章

Android 上的自定义裁剪

iOS中的自定义“可调整大小的图像”绘图

相机标定 和 单应性矩阵H

在selectInput中R闪亮的自定义图标/图像

具有 1x1 像素 PNG 的更好的响应式图像?

如何将图像尺寸(宽度/高度)转换为毫米?