gpt4 book ai didi

python - 只有 size-1 数组可以转换为 Python 标量

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:15 24 4
gpt4 key购买 nike

我正在尝试练习Python图像像素颜色直方图

import cv2
import numpy as np
import matplotlib.pyplot as plt


img = cv2.imread('image.jpg')


gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)


hist = cv2.calcHist([gray], [0], None, [256], [0, 256])


plt.bar(range(1,257), hist)
plt.show()

它给出了一个错误

Traceback (most recent call last):
File "C:/Users/jmu/Desktop/123.py", line 15, in <module>
plt.bar(range(1,257), hist)
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\pyplot.py", line 2457, in bar
**({"data": data} if data is not None else {}), **kwargs)
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\__init__.py", line 1810, in inner
return func(ax, *args, **kwargs)
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\axes\_axes.py", line 2296, in bar
label='_nolegend_',
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\patches.py", line 658, in __init__
Patch.__init__(self, **kwargs)
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\patches.py", line 87, in __init__
self.set_linewidth(linewidth)
File "C:\Users\jmu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\patches.py", line 348, in set_linewidth
self._linewidth = float(w)
TypeError: only size-1 arrays can be converted to Python scalars

我该如何解决这个问题

最佳答案

plt.bar(range(1,257), hist.reshape(256))

或者如果你想避免硬编码数字

plt.bar(range(len(hist)), hist.reshape(-1))

酒吧签名是

matplotlib.pyplot.bar(x,高度,宽度=0.8,底部=无,*,align='center',数据=无,**kwargs)

高度:标量或标量序列

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html

因此,将您的高度重新调整为一个序列。

关于python - 只有 size-1 数组可以转换为 Python 标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com