2

を使用して画像を変換しましたmeshgridが、新しい座標が部分的に元の画像の範囲外にあるため、変換に失敗しました。

最初に使ったクリップ

...
tX = numpy.clip(tX.astype(numpy.int),0,image.w)
tY = numpy.clip(tY.astype(numpy.int),0,image.h)
result image([tX,tY])

これにより、「最も近い」境界条件と同様の効果が得られました。

外側のすべてのピクセルを黒にしたいと思います。メッシュグリッドでブール配列を使用することでこれを達成できると思っていましたが、ブール配列をメッシュグリッドに正しく適用する方法がわかりません。

tXbool = numpy.abs(tX) < image.w
tXbool.shape
(850, 1280)
tX[tXbool].shape
(193180,)
4

2 に答える 2

1

常にターゲット画像のピクセルに逆変換を適用し、これを使用してソース画像の (補間された) 色/値を検索する必要があります。そうしないと、穴や量子化の問題が発生します。ここに参照があります。または、画像処理の教科書で画像変換/ワープを調べてください: http://www.cs.clemson.edu/~dhouse/courses/405/notes/image-warps.pdf

于 2012-05-18T15:59:24.670 に答える
0

さて、それが私が最後にやった方法です:

tXbool = (0 < tX) & (tX  < image.w )
tybool = (0 < tY) & (tY  < image.h )
outliers = tXbool & tybool

mask = where(outliers,1,0)
mask4channels = dstack([mask,mask,mask])
image = image*mask4channels
于 2012-05-18T15:56:33.437 に答える