为什么cv2.resize()会扭曲我的图像?



我有以下图片:

原始图像

我使用下面的代码来调整这个图像的大小为1600x1200。

img = cv2.imread('R.png')
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray_image.resize(1600,1200)

然后返回以下图像:

最终的图像

我试图通过使用不同的图像格式(jpg, tif)来解决这个问题,但这似乎没有帮助。我还尝试使用不同的插值算法,如INTER_NEAREST和INTER_LINEAR,这些产生相同的结果。

有人有什么想法吗?

您正在调用表示灰度图像的numpy数组上的resize()函数,该函数仅更改数组的形状。你应该使用OpenCV中的resize()函数:

img = cv2.imread('R.png')
resized_image = cv2.resize(img, (1600, 1200), interpolation = cv2.INTER_LINEAR)

除此之外,我认为你错误地交换了图像的宽度和高度,它应该是1200 x 1200保持比例。

相关内容

  • 没有找到相关文章

最新更新