我正在编写一个手写识别应用程序,我的输入必须具有一定的尺寸(128x128)。当我检测到一个字母时,它看起来像这样:
例如,该图像的大小为 40x53。我想让它成为 128x128,但简单地调整它的大小会降低质量,尤其是对于较小的图像。我想以某种方式将其余部分填充到 128x128,中间是 40x53。背景颜色也应该保持相对相同。我正在使用 Python 的 opencv,但我是新手。我该怎么做,甚至有可能吗?
最佳答案
在这里,您可以使用 outputImage
获取您所询问的内容.基本上我使用 copyMakeBorder
添加了一个边框方法。您可以引用this更多细节。您必须在 value
中根据需要设置颜色值。范围。现在它是白色的 [255,255,255]。
但是我宁愿建议您调整原始图像的大小,这似乎是比您所要求的更好的选择。调整图像大小,您可以使用 resized
在下面的代码中。为了您的方便,我在这段代码中添加了这两种方法。
import cv2
import numpy as np
inputImage = cv2.imread('input.jpg', 1)
outputImage = cv2.copyMakeBorder(inputImage,37,38,44,44,cv2.BORDER_CONSTANT,value=[255,255,255])
resized = cv2.resize(inputImage, (128,128), interpolation = cv2.INTER_AREA)
cv2.imwrite('output.jpg', outputImage)
cv2.imwrite('resized.jpg', resized)
关于python - 使用 Python 将图像填充到一个大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252468/