astype() 如何影响 numpy 的均值和总和?

布莱尔

蟒蛇 3.4。计算均方误差。我无法解释 astype() 如何影响 numpy mean 和 sum。什么形式是正确的?

import cv2
import numpy as np
InputImage = cv2.imread('Crocus.jpg')
BlurredImage = cv2.GaussianBlur(InputImage, ( 5, 5), 2.0)
GrayImage = cv2.cvtColor( BlurredImage, cv2.COLOR_BGR2GRAY)
I0 = cv2.cvtColor( InputImage, cv2.COLOR_BGR2GRAY)
MN = float(I0.shape[0] * I0.shape[1])
MSE = np.mean((I0 - GrayImage) ** 2, axis=None)
print(MSE)
MSE = np.mean((I0.astype("float") - GrayImage.astype("float")) ** 2)
print(MSE)
MSE2 = np.sum((I0 - GrayImage) ** 2, axis=None) / MN
print(MSE2)
MSE2 = np.sum((I0.astype("float") - GrayImage.astype("float")) ** 2) / MN
print(MSE2)

输出是(对于我的图像):

63.4138313802
224.549664714
63.4138313802
224.549664714

astype("float") 对这两个公式给出了不同的答案。图像值都是uint8。为什么 float 会对结果产生影响?正确答案是什么?

保罗,谢谢。数字是 uint8,因此差异不能小于零。将数组转换为 int8 或 float 将处理差异。

保罗·潘泽

我很确定你看到的是广场上的溢出:

import numpy as np

mock_data = np.random.randint(0, 256, (100,)).astype(np.uint8)
blurred = np.convolve(mock_data, (0.25,0.5,0.25), 'same').astype(np.uint8)

print(np.mean((mock_data-blurred)**2))
print(np.mean((mock_data.astype(float)-blurred.astype(float))**2))

# truncating squared floats below 256 gives same result as uint8
print(np.mean(((mock_data.astype(float)-blurred.astype(float))**2) % 256))

# squared uint8 is truncated below 256
print(np.all((mock_data-blurred)**2 < 256))

# but non-squared difference is not bounded by +/-16 
print(np.all((np.abs(mock_data-blurred)) < 16))

印刷:

115.87
2337.95
115.87
True
False

所以,我的建议是使用浮动结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NumPy中astype的有效参数

来自分类Dev

Numpy:String to Float - astype 不起作用?

来自分类Dev

我在哪里可以找到 Numpy 的 astype() 函数定义?

来自分类Dev

如何使用广播和/或numpy函数计算2D numpy数组的均值?

来自分类Dev

Numpy 聚合行和总和

来自分类Dev

如何获得按numpy和pandas中的变量分组的平均值?

来自分类Dev

Java方法命名约定toType和asType的区别?

来自分类Dev

如何在一个MS SQL查询中获得不同的平均值和总和值?

来自分类Dev

如何在PouchDB上模拟聚合函数的平均值,总和,最大值,最小值和计数?

来自分类Dev

如何使用不同的函数计算三个数字的总和、平均值和乘积

来自分类Dev

Numpy和Matlab的总和有何不同?

来自分类Dev

如何获得组合whenComplete和thenCompose的影响?

来自分类Dev

主板和CPU如何影响RAM选择?

来自分类Dev

如何在numpy数组区域中测量均值

来自分类Dev

如何堆叠'numpy masked array'和'numpy array'

来自分类Dev

如何加快numpy.all和numpy.nonzero()?

来自分类Dev

MySQL:如何编写取数字总和的平均值的查询

来自分类Dev

如何避免多列的numpy数组的总和不那么精确

来自分类Dev

为什么使用numpy.ndarray.astype将numpy.ndarray转换为自定义数据类型会使我的数据倍增?

来自分类Dev

在使用numpy.digitize分割NumPy数组后,如何计算每个bin的均值?

来自分类Dev

Symfony2和PHP受DST影响,如何阻止它影响我?

来自分类Dev

mysqldump 和 load 如何影响 rails 模式和迁移?

来自分类Dev

如何将.astype()方法应用于Python中的数据框?

来自分类Dev

按列汇总:均值和总和

来自分类Dev

在numpy矩阵中增加元素也会影响不同的矩阵和不相关的行

来自分类Dev

量化密度如何影响图像资源的选择和缩放?

来自分类Dev

AJAX如何影响PHP中的变量和函数?

来自分类Dev

如何计算同时影响日期和时间的运行总计?

来自分类Dev

如何支持设备的sourceCompatibility和targetCompatibility影响多少?

Related 相关文章

  1. 1

    NumPy中astype的有效参数

  2. 2

    Numpy:String to Float - astype 不起作用?

  3. 3

    我在哪里可以找到 Numpy 的 astype() 函数定义?

  4. 4

    如何使用广播和/或numpy函数计算2D numpy数组的均值?

  5. 5

    Numpy 聚合行和总和

  6. 6

    如何获得按numpy和pandas中的变量分组的平均值?

  7. 7

    Java方法命名约定toType和asType的区别?

  8. 8

    如何在一个MS SQL查询中获得不同的平均值和总和值?

  9. 9

    如何在PouchDB上模拟聚合函数的平均值,总和,最大值,最小值和计数?

  10. 10

    如何使用不同的函数计算三个数字的总和、平均值和乘积

  11. 11

    Numpy和Matlab的总和有何不同?

  12. 12

    如何获得组合whenComplete和thenCompose的影响?

  13. 13

    主板和CPU如何影响RAM选择?

  14. 14

    如何在numpy数组区域中测量均值

  15. 15

    如何堆叠'numpy masked array'和'numpy array'

  16. 16

    如何加快numpy.all和numpy.nonzero()?

  17. 17

    MySQL:如何编写取数字总和的平均值的查询

  18. 18

    如何避免多列的numpy数组的总和不那么精确

  19. 19

    为什么使用numpy.ndarray.astype将numpy.ndarray转换为自定义数据类型会使我的数据倍增?

  20. 20

    在使用numpy.digitize分割NumPy数组后,如何计算每个bin的均值?

  21. 21

    Symfony2和PHP受DST影响,如何阻止它影响我?

  22. 22

    mysqldump 和 load 如何影响 rails 模式和迁移?

  23. 23

    如何将.astype()方法应用于Python中的数据框?

  24. 24

    按列汇总:均值和总和

  25. 25

    在numpy矩阵中增加元素也会影响不同的矩阵和不相关的行

  26. 26

    量化密度如何影响图像资源的选择和缩放?

  27. 27

    AJAX如何影响PHP中的变量和函数?

  28. 28

    如何计算同时影响日期和时间的运行总计?

  29. 29

    如何支持设备的sourceCompatibility和targetCompatibility影响多少?

热门标签

归档