ValueError:具有多个元素的数组的真值不明确。在绘制框架时在 plt.show() 中使用 a.any() 或 a.all()

Posted

技术标签:

【中文标题】ValueError:具有多个元素的数组的真值不明确。在绘制框架时在 plt.show() 中使用 a.any() 或 a.all()【英文标题】:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() in plt.show() while plotting frame 【发布时间】:2021-09-25 01:19:09 【问题描述】:

我正在尝试捕获视频帧,然后使用 plt.imshow() 绘制它,但我收到此错误。

vs = cv2.VideoCapture('../input/hard-hat-dataset/short_clip.mp`enter code here`4')
(grabbed, img) = vs.read()

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.show(img)

错误:

ValueError                               Traceback (most recent call last)
<ipython-input-49-1e7d2b5de2de> in <module>
3 
4 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
5 plt.show(img)
6 
7 

/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py in show(*args, **kwargs)
376     """
377     _warn_if_gui_out_of_main_thread()
378     return _backend_mod.show(*args, **kwargs)
379 
380 

/opt/conda/lib/python3.7**/site-packages/matplotlib_inline/backend_inline.py in show(close, 
block)
47         # only call close('all') if any to close
48         # close triggers gc.collect, which can be 
49         if close and Gcf.get_all_fig_managers():
50             matplotlib.pyplot.close('all')
51 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() 
or a.all()

如果我打印图像,它是正确大小的 numpy 格式。*

vs = cv2.VideoCapture('../input/hard-hat-dataset/short_clip.mp4')
(grabbed, img) = vs.read()

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print(img)

[[[107 107 104]
[173 175 175]
[107 107 104]
....
[173 175 175]
[173 175 175]]

【问题讨论】:

【参考方案1】:

函数plt.show 用于显示最终的matplotlib 图。您不能将数据传递给它。所以先用plt.imshow生成一个包含图片的图,用plt.show显示出来。

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

plt.imshow(img)
plt.show()

【讨论】:

是的,这就是问题所在。谢谢。

以上是关于ValueError:具有多个元素的数组的真值不明确。在绘制框架时在 plt.show() 中使用 a.any() 或 a.all()的主要内容,如果未能解决你的问题,请参考以下文章

Model.fit with ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

ValueError:具有多个元素的数组的真值不明确。在绘制框架时在 plt.show() 中使用 a.any() 或 a.all()

NLP/TF-IDF: ValueError: 具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

关于 colab - class_weight 导致 ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

具有多个元素的数组的真值是模棱两可的错误?

石榴 HMM 标签:具有多个元素的数组的真值是不明确的。