如何用给定线图像中的数据沿给定半径填充二维图像中的线?

How to fill a line in 2D image along a given radius with the data in a given line image?

我想沿其极半径填充 2D 图像,数据存储在图像中,其中每行或每列对应于目标图像中的半径。如何有效地填充目标图像?例如使用 iradius 或某些功能?我不喜欢 pix-pix 操作。

您在找这样的东西吗?

number maxR = 100
image rValues := realimage("I(r)",4,maxR)
rValues = 10 + trunc(100*random())
image plot :=realimage("Ring",4,2*maxR,2*maxR)
rValues.ShowImage()
plot.ShowImage()
plot = rValues.warp(iradius,0)

您可能还想从 GMS 本身的 F1 帮助文档中查看相关示例代码:


稍微解释一下warp

plot = rValues.warp(iradius,0)

根据 rValues 中的值查找为 plot 赋值。 对于 plot 中的每个像素,计算 rValues 中的坐标位置,并简单地查找该值。如果计算的坐标是非整数,则使用最近的 4 个点之间的双线性插值。

示例中,用于坐标计算的两个'formulas'是简单的x' = iradiusy' = 0,其中iradius是根据[=13]中的坐标计算的表达式=],为方便起见。

您可以将任何表达式输入到 warp( ) 的参数中,该命令与仅使用方括号表示法寻址值密切相关。事实上,唯一的区别是 warp 执行值的双线性插值,而不是将坐标截断为整数值。