只能将size-1数组转换为Python标量 - python

我正在尝试练习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

我该如何解决

python参考方案

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

或者,如果您要避免硬编码

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

酒吧的签名是

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

height : scalar or sequence of scalars

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

因此,将身高调整为序列。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

字符串文字中的正斜杠表现异常 - python

为什么S1和S2在撇号位置方面表现不同?S1="1/282/03/10" S2="4/107/03/10" R1="".join({"N\'" ,S1,"\'" }) R2="".join({"N\'…