gpt4 book ai didi

python-3.x - Python中使用warpAffine的OpenCV旋转导致错误的边界

转载 作者:行者123 更新时间:2023-12-02 17:09:42 25 4
gpt4 key购买 nike

看看这个 Python 代码:

degrees = 90
center = (24, 24)

img = np.ones((48,48,3)) * 255
mat = cv2.getRotationMatrix2D(center, degrees, 1.0)
img = cv2.warpAffine(img, mat, (48, 48))

我的期望是创建一个 3 channel 、完全饱和的白色正方形并将其存储在 img 中。之后,它将旋转 90 度。将一个白色正方形旋转 90 度应该会导致......一个无法区分的白色正方形。但是当我:
plt.imshow(img)
plt.show(img)

我看到一个错误的黑色边框:

What gives

有什么方法可以得到 warpAffine按预期工作,即旋转图像而没有错误的边框?我尝试了以下修改无济于事:
center  = (23, 23)
center = (24, 23)
center = (23, 24)
center = (25, 25)
center = (24, 25)
center = (25, 24)

最佳答案

您应该使用图像的确切中心,而不是下一个最接近的东西。使用 (24,24) 旋转稍微偏离中心。

由于getRotationMatrix2D接受 Point2f,您应该将中心传递为 (23.5,23.5) ,因为它是 0 and 47 之间的中间点.

关于python-3.x - Python中使用warpAffine的OpenCV旋转导致错误的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com