我正在使用python 3和最新版本的openCV。我正在尝试使用提供的调整大小功能调整图像大小,但调整大小后图像非常失真。代码:调整图像的大小而不失真OpenCV
import cv2
file = "/home/tanmay/Desktop/test_image.png"
img = cv2.imread(file , 0)
print(img.shape)
cv2.imshow('img' , img)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyWindow('img')
resize_img = cv2.resize(img , (28 , 28))
cv2.imshow('img' , resize_img)
x = cv2.waitKey(0)
if x == 27:
cv2.destroyWindow('img')
原始图像480 * 640(RGB因此我通过0得到它的灰度)
有什么办法,我可以调整它的大小和使用OpenCV的或任何其他避免失真图书馆呢?我打算做一个手写数字识别器,并且我已经使用MNIST数据训练了我的神经网络,因此我需要该图像为28x28。
没有任何失真,你有2个选项:a)图像的作物部位,使其相同的纵横比。 b)将图像的一部分(例如黑色像素)添加到图像的侧面以使其具有相同的纵横比。如果你没有相同的长宽比,就不可能不失真地获得它。 – api55
您必须确保您传递的新尺寸的纵横比与原始图像相同,并确保使用合适的插值方法 –
我向原始图像添加了黑色像素,使其成为640x640,但仍然在调整尺寸时我得到一个扭曲的图像。我能做什么 ? –