簡體   English   中英

qwt / pyqt自定義比例尺,用於圖像繪圖(像素到毫米的轉換)

[英]qwt/pyqt custom scale for image plot (pixel to mm conversion)

我決定將guiqwt用作Python中的主要繪圖庫,並且效果很好。 但是,我缺少輪廓圖功能,因此必須在圖像圖中繪制出自己的輪廓。 使用scikit相當容易。 現在,我的繪圖在頂部顯示圖像和輪廓。 x和y方向的比例單位是像素,因為每個像素都提供了圖像原始數據,並且還計算了輪廓。

我的問題是在不縮放圖像的情況下將像素比例轉換為毫米比例。 我想用代表測量距離的比例尺代替原始比例尺。 距離在數組中可用。

在我第一次嘗試我試圖改變AxisScaleDivision通過創建一個新的,使用QwtPlot :: setAxisScaleDiv。 但這似乎像縮放功能一樣工作,因為圖像被縮小到了新的間隔。

這是我的一個小示例代碼:

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的人都可以為我提供幫助:)

圖像縮放應保持不變。 僅應將軸重新計算為mm刻度,然后,當使用縮放功能時,當然要進行調整。

我通過使用完全不同的方法解決了這個問題。 我使用了guiqwt的xyimage函數。 但是,我也必須縮放輪廓。 我上次錯過了,所以才發布了這個問題。

暫無
暫無

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

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