Python OpenCV翘曲仿射和逆翘曲仿射不一致

Python OpenCV翘曲仿射和逆翘曲仿射不一致,python,opencv,image-processing,Python,Opencv,Image Processing,我正在使用OpenCV扭曲仿射函数来做一些图像处理。奇怪的是,我在应用一个扭曲仿射和一个反向扭曲仿射后发现。处理后的图像与原始图像不一致,原始图像底部有一个像素边框填充 img_path='140028_199844.jpg' img=cv2.imread(img\u路径,cv2.imread\u颜色) plt.imshow(img[:,:,::-1]) h、 w=img.shape#h=220 w=173 src=np.array([[86,109.5],[86,0.],[-23.5,0.

我正在使用OpenCV扭曲仿射函数来做一些图像处理。奇怪的是,我在应用一个扭曲仿射和一个反向扭曲仿射后发现。处理后的图像与原始图像不一致,原始图像底部有一个像素边框填充

img_path='140028_199844.jpg'
img=cv2.imread(img\u路径,cv2.imread\u颜色)
plt.imshow(img[:,:,::-1])
h、 w=img.shape#h=220 w=173

src=np.array([[86,109.5],[86,0.],[-23.5,0.]))
dst=np.数组([[192,192.],[192,0.],[0,0.]))
trans=cv2.getAffineTransform(np.float32(src),np.float32(dst))
inv_trans=cv2.getAffineTransform(np.float32(dst),np.float32(src))
input=cv2.affine(
img,
trans,
(384, 384),
标志=cv2.0内部线性,
borderMode=cv2.BORDER_常数,
borderValue=(0,0,0))
plt.imshow(输入[:,:::-1])

output=cv2.affine(
输入,
交通部,
(w,h),
标志=cv2.0内部线性,
borderMode=cv2.BORDER_常数,
边界值=(0,0,0))
plt.imshow(输出[:,:::-1])


那么这类问题的可能研究是什么呢?

这可能是一个数值问题,因为扭曲的坐标被映射回整数索引(即范围
w
h


如果多次执行此操作,您可能会看到更糟糕的效果,即扭曲、反转、扭曲、反转等。

这可能是一个数字问题,因为扭曲坐标会映射回整数索引(即范围
w
h


如果您多次这样做,您可能会看到更糟糕的效果,即扭曲、反转、扭曲、反转等。

将图像旋转180度时,Scipy ndimage.rotate(img,angle)帮助我。它看起来比较慢,但对于一些图像来说,时间不多。

当图像旋转180度时,Scipy ndimage.rotate(img,angle)帮助了我。它看起来比较慢,但对于一些图像来说,时间不多。

对于90和180个旋转,您可以在这里检查-对于90和180个旋转,您可以在这里检查-