【问题标题】:How to calculate Mean value and Std Value of an image如何计算图像的平均值和标准值
【发布时间】: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


【解决方案1】:

试一试:floatValues[i * 3 + 2] = (val & 0xFF) / 255.0f,这是一个标准化。 我还编写了一个与 Tensorflow 配合使用的 Android 应用程序。可以参考我的项目:https://github.com/tz28/Chinese-number-gestures-recognition/blob/master/README.en-US.md 希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2012-04-20
    • 2021-05-08
    相关资源
    最近更新 更多