ValueError:操作数不能与形状(10)一起广播(11)

m_amber

我正在尝试使用Dejan Noveski的代码创建一个使用PIL模块计算python中图像熵的函数。

def image_entropy(img):
hgram = np.histogram(img)
histogram_length = sum(hgram)

samples_probability = [float(h) / histogram_length for h in hgram]

return -sum([p * math.log(p, 2) for p in samples_probability if p != 0])

它引发以下错误

 File "test.py", line 45, in <module>
I_e=image_entropy(I)
File "test.py", line 11, in image_entropy
histogram_length = sum(hgram)
File "/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 1510, in sum
out=out, keepdims=keepdims)
File "/usr/lib/python2.7/dist-packages/numpy/core/_methods.py", line 18, in _sum
out=out, keepdims=keepdims)
ValueError: operands could not be broadcast together with shapes (10) (11) 

我不明白为什么它会产生广播错误,因为我不考虑任何乘积,只取矩阵的总和。有人可以帮我吗。

先感谢您

算了吧

numpy.histogram返回一个2元组:直方图bin边缘数组。所以

hgram = np.histogram(img)

应该

hgram, bin_edges = np.histogram(img)

如果使用,hgram = np.histogram(img)则将hgram分配给2元组。Python非常乐于这样做。那里没有引发异常。但是,当Python求值时,sum(hist)它将尝试对中的两项进行求和hist一个(直方图值)是一个长度为10的数组,另一个(直方图边)是一个长度为11的数组。这就是发生ValueError的地方。


np.histogram(img)期望img是一个数组。如果img是PIL图像,则使用im.histogram方法

hgram = img.histogram()

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ValueError:操作数不能与形状(10)一起广播(11)

来自分类Dev

熊猫:ValueError-操作数不能与形状一起广播

来自分类Dev

ACF时间序列:ValueError:操作数不能与形状一起广播

来自分类Dev

numpy ValueError:操作数不能与形状一起广播

来自分类Dev

ValueError:操作数不能与形状(1,55)(42,)一起广播

来自分类Dev

ValueError:操作数不能与形状(3,)(2,)一起广播

来自分类Dev

ValueError:操作数不能与形状(200,49000)(10,49000)(200,49000)一起广播

来自分类Dev

Tensorflow ValueError:操作数不能与形状(5、5、160)(19、19、80)一起广播

来自分类Dev

scipy fmin操作数不能与形状一起广播

来自分类Dev

操作数不能与形状(16,)(21,)-pandas一起广播

来自分类Dev

Python Numpy:操作数不能与形状一起广播

来自分类Dev

操作数不能与形状(780,1080)一起广播(780,1080,3)

来自分类Dev

神经网络(操作数不能与形状(1,713)(713,18)一起广播)

来自分类Dev

操作数不能与形状(780,1080)一起广播(780,1080,3)

来自分类Dev

如何处理 Numpy 中的“ValueError: 操作数无法与形状 (10000,) (10000,10) 一起广播”

来自分类Dev

ValueError:操作数无法与形状(54、54、128)(54、54、64)一起广播

来自分类Dev

ValueError:在 groupby 对象上调用 pands value_counts() 时,操作数无法与形状一起广播

来自分类Dev

用户定义函数:操作数不能一起广播

来自分类Dev

带GFS数据的metpy.calc.dewpoint_from_relative_humidity:ValueError:操作数无法与形状(31,)(34,)一起广播

来自分类Dev

尝试使用Seaborn从DataFrame列绘制单变量分布时,出现“ ValueError:操作数不能一起广播”的情况

来自分类Dev

错误:操作数无法与形状一起广播 (1776,1,2) (3896,1,2)

来自分类Dev

scikit-learn的BaggingClassifier和自定义基址估计器出现问题:操作数不能一起广播吗?

来自分类Dev

Python ValueError:形状为(124,1)的不可广播的输出操作数与广播形状(124,13)不匹配

来自分类Dev

与“ find”命令一起使用时出现错误“ rm:缺少操作数”

来自分类Dev

在Python中一起使用IF,AND,OR和EQUAL操作数

来自分类Dev

Ember.js操作把手{{action}}不能与<option> html标记一起使用

来自分类Dev

IE 11中的onClick不能与单击一起使用

来自分类Dev

为什么在MIPS中将“ la”与寄存器间接操作数一起使用是非法的?

来自分类Dev

QSignalSpy不能与线程一起使用

Related 相关文章

  1. 1

    ValueError:操作数不能与形状(10)一起广播(11)

  2. 2

    熊猫:ValueError-操作数不能与形状一起广播

  3. 3

    ACF时间序列:ValueError:操作数不能与形状一起广播

  4. 4

    numpy ValueError:操作数不能与形状一起广播

  5. 5

    ValueError:操作数不能与形状(1,55)(42,)一起广播

  6. 6

    ValueError:操作数不能与形状(3,)(2,)一起广播

  7. 7

    ValueError:操作数不能与形状(200,49000)(10,49000)(200,49000)一起广播

  8. 8

    Tensorflow ValueError:操作数不能与形状(5、5、160)(19、19、80)一起广播

  9. 9

    scipy fmin操作数不能与形状一起广播

  10. 10

    操作数不能与形状(16,)(21,)-pandas一起广播

  11. 11

    Python Numpy:操作数不能与形状一起广播

  12. 12

    操作数不能与形状(780,1080)一起广播(780,1080,3)

  13. 13

    神经网络(操作数不能与形状(1,713)(713,18)一起广播)

  14. 14

    操作数不能与形状(780,1080)一起广播(780,1080,3)

  15. 15

    如何处理 Numpy 中的“ValueError: 操作数无法与形状 (10000,) (10000,10) 一起广播”

  16. 16

    ValueError:操作数无法与形状(54、54、128)(54、54、64)一起广播

  17. 17

    ValueError:在 groupby 对象上调用 pands value_counts() 时,操作数无法与形状一起广播

  18. 18

    用户定义函数:操作数不能一起广播

  19. 19

    带GFS数据的metpy.calc.dewpoint_from_relative_humidity:ValueError:操作数无法与形状(31,)(34,)一起广播

  20. 20

    尝试使用Seaborn从DataFrame列绘制单变量分布时,出现“ ValueError:操作数不能一起广播”的情况

  21. 21

    错误:操作数无法与形状一起广播 (1776,1,2) (3896,1,2)

  22. 22

    scikit-learn的BaggingClassifier和自定义基址估计器出现问题:操作数不能一起广播吗?

  23. 23

    Python ValueError:形状为(124,1)的不可广播的输出操作数与广播形状(124,13)不匹配

  24. 24

    与“ find”命令一起使用时出现错误“ rm:缺少操作数”

  25. 25

    在Python中一起使用IF,AND,OR和EQUAL操作数

  26. 26

    Ember.js操作把手{{action}}不能与<option> html标记一起使用

  27. 27

    IE 11中的onClick不能与单击一起使用

  28. 28

    为什么在MIPS中将“ la”与寄存器间接操作数一起使用是非法的?

  29. 29

    QSignalSpy不能与线程一起使用

热门标签

归档