poisson_blend — COLORTRANSPORT blend op

• 数据种类:image2d × image2d × mask → image2d

• 调用: import fullseye as fs; fs.ledger.poisson_blend(src, dst, mask, offset=(0, 0))(要直接调用实现,import colortransport; colortransport.poisson_blend(src, dst, mask, offset=(0, 0));从台账取用则 opscolortransport.get("poisson_blend"))

• 经台账调用的返回值: fullseye.ledger.poisson_blend(...) 只返回声明的 out 类型 image2d 的值(底层函数还会返回辅助信息)。需要被丢弃的部分时,使用 fullseye.ledger.poisson_blend.raw(...),或直接调用 colortransport.poisson_blend。

用法

搬运梯度场的无缝合成(Pérez, Gangnet & Blake, SIGGRAPH 2003)。

在 mask 内部保持src 的梯度,同时求解一个在边界上等于 dst 的值的图像。因此输出按构造满足下面 2 条,

这正是正确性的验算:

• 内部的拉普拉斯与 src 的拉普拉斯一致(至多相差求解的残差)

• 掩模之外与 dst 严格一致(连 1 个像素都不动)

贴上去的物体颜色会改变。 这正是该处理的目的,但若直接用于「测量所贴物体的颜色」这类用途,测到的其实是贴入目标处的颜色。返回值为 (blended, info),info["changed_pixels"] 和 info["max_shift"] 说明实际变动了多少。

Parameters

src : array_like

要贴的图。(H, W) 或 (H, W, C)。

dst : array_like

贴入目标。尺寸不小于 src。

mask : array_like

与 src 相同 (H, W) 的布尔值。不得接触边缘

(因无法取得边界条件而明确拒绝)。

offset : (int, int)

在 dst 中放置 src 左上角的 (row, col)。

Returns

(ndarray, dict)

背景知识指南(该算子背后的物理与约定)

• colorimetry — 测色与光谱知识 —— 颜色只由“光谱 × 光源 × 观察者”决定

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• color_transport — py -3.11 examples/color_transport.py

类型可衔接的下一个算子(可接受 image2d 作为输入)

histogram_match

同类别(blend)

—


*Provenance: colortransport.py — COLORTRANSPORT 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.