【发布时间】:2018-07-20 07:54:41
【问题描述】:
我正在创建一个适用于 Tensorflow 的 Android 应用。为了提供图像,我需要将位图按颜色转换为浮点数组。我找到了以下代码:
float[] floatValues = new float[width * height * 3];
int[] intValues = new int[width * height];
bitmap.getPixels(intValues, 0, width, 0, 0, width, height);
for (int i = 0; i < intValues.length; ++i) {
final int val = intValues[i];
floatValues[i * 3 + 0] = ((val >> 16) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 1] = ((val >> 8) & 0xFF) - imageMean) / imageStd;
floatValues[i * 3 + 2] = (val & 0xFF) - imageMean) / imageStd;
}
我没有找到如何计算 imageMean 或 imageStd,所以有人写道,我也可以只使用
floatValues[i * 3 + 2] = (val & 0xFF) / 255
(对于 3 行中的每一行)
但它给出了错误的结果(任何输入都相同)。 Here我发现它每次只给出0。因此,我需要弄清楚如何计算平均值和标准值。我还听说每种颜色的这些值都不同。
非常感谢任何帮助。
附:我的图片尺寸为 250x250,3 个颜色通道。
【问题讨论】:
-
我也面临同样的问题。如果您找到了解决方案,请告诉我。
标签: android image tensorflow neural-network mean