我正在研究一个项目,该项目使用在MNIST数据集上训练的神经网络来识别图像上的多个数字。第一步是检测使用CCL算法制作的二进制图像上的数字。但是问题在于,应使用抗锯齿技术对所有检测到的数字进行尺寸规格化,以适合20x20像素的框,同时保留其长宽比(http://yann.lecun.com/exdb/mnist/)。 那么,我该如何解决这个问题?
干杯。
答案 0 :(得分:0)
我在以下链接上找到了使用双线性插值来调整灰度大小的有用代码:http://tech-algorithm.com/articles/bilinear-image-scaling/ 在调整图像的大小(长边为20像素长)后,图像将根据数字的质心居中于28x28图像的中心。 用python编写的用于计算应该居中的图像质心的代码:
centroid = np.ones(2)
summ = 0
img2 = np.array(img2)
for i in range (img2.shape[0]):
for j in range (img2.shape[1]):
if img2[i][j]:
summ+=img2[i][j]
centroid[0]+=i*img2[i][j]
centroid[1]+=j*img2[i][j]
centroid /= summ
centroid = np.rint(centroid)