【问题标题】:OpenCV warpAffine and inverse warpAffine inconsistenceOpenCV warpAffine和inverse warpAffine不一致
【发布时间】:2019-05-29 05:15:37
【问题描述】:

我正在使用 OpenCV warpAffine 函数进行一些图像处理。奇怪的是,我在应用了 warpAffine 和逆 warpAffine 之后发现。处理后的图像与原图不一致,底部有一个像素的边框填充。

img_path = '140028_199844.jpg'
img = cv2.imread(img_path,cv2.IMREAD_COLOR)
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.array([[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.warpAffine(
    img,
    trans,
    (384, 384),
    flags=cv2.INTER_LINEAR,
    borderMode=cv2.BORDER_CONSTANT,
    borderValue=(0, 0, 0))
plt.imshow(input[:,:,::-1])

output = cv2.warpAffine(
        input,
        inv_trans,
        (w, h),
        flags=cv2.INTER_LINEAR,
        borderMode=cv2.BORDER_CONSTANT,
        borderValue=(0,0,0))
plt.imshow(output[:,:,::-1])

那么对于这样的问题,可能的重新赛季是什么?

【问题讨论】:

标签: python opencv image-processing


【解决方案1】:

这可能是一个数字问题,因为扭曲的坐标被映射回整数索引(即在wh 范围内)。

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

【讨论】:

    【解决方案2】:

    Scipy ndimage.rotate(img, angle) 在将图像旋转 180 度时帮助了我。看起来速度较慢,但​​对于一些图像来说,时间并不长。

    【讨论】:

      猜你喜欢
      • 2019-12-19
      • 2012-09-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多