如果目标是尽可能保持线条/边缘的质量,那么使用Java缩放Android上的位图图像的最佳方法是什么?目的是使用这些缩小的图像来训练神经网络。Android Bitmap降尺寸
每个图像将包含一个字符(在本例中为中文)。下图显示了由用户绘制的View对象上生成的原始图像。我的目标是将此位图图像缩小为30 x 30像素的分辨率。
我目前正在使用位图createScaledBitmap方法,但我想知道是否有任何算法/方法优化这种字符缩小。
drawView.buildDrawingCache();
Bitmap b = Bitmap.createScaledBitmap(drawView.getDrawingCache(), 30, 30, false);
saveImage(b); // Saves image to disk.
drawView.destroyDrawingCache();
另一个因素可能是线宽和整体图像尺寸之间的关系。线宽目前为20f。我已经发现,在30f时,我开始出现大的黑暗块,而在10f时,当我缩小比例时,我失去了很多信息。
还有另一个因素可能导致图像大小。但是,如果我变得太大,那么训练网络所需的计算量可能会变得太大。
Original image。
这里是处理后的图像 - 它看起来并不太坏,但我担心与其他字符,也可能没有足够的变化对神经网络学习。