You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PIL与OpenCV仿射变换结果异常:图像为何出现倒置偏移?

PIL与OpenCV仿射变换结果异常:图像为何出现倒置偏移?

我正在尝试把图像处理流程里的OpenCV替换成PIL。我知道OpenCV的仿射变换是源→目标的映射,但PIL的参数是目标→源的映射,理论上把OpenCV的变换矩阵求逆后就能给PIL用。

但现在遇到了问题:有一张图用OpenCV做仿射变换完全正常,换成PIL后得到的结果却是倒置还偏移的。我已经试过把OpenCV的变换矩阵求逆,再传给PIL的.transform()方法,但结果还是不对。到底哪里出错了呢?

相关代码片段如下:

...
warped = cv2.warpAffine(image, M, (width, height))
...
a_f = M[0, 0]
b_f = M[0, 1]
c_f = M[0, 2]
d_f = M[1, 0]
e_f = M[1, 1]
f_f = M[1, 2]

a_i, b_i, c_i, d_i, e_i, f_i = invert_affine(a_f, b_f, c_f, d_f, e_f, f_f)
warped = image.transform(
    ...
    (a_i, b_i, c_i, d_i, e_i, f_i),
    ...
)

我准备了可复现的示例,相关图片如下:

  • 原始带标注的图片:Bounding Box
  • PIL变换后异常的结果:Bad Transform From PIL Affine Transform

备注:内容来源于stack exchange,提问作者Tyler Norlund

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:33:04