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.