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), ... )
我准备了可复现的示例,相关图片如下:
- 原始带标注的图片:

- PIL变换后异常的结果:

备注:内容来源于stack exchange,提问作者Tyler Norlund
相关产品推荐
相关产品推荐

