错误:(-2:未指定的错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库
Posted
技术标签:
【中文标题】错误:(-2:未指定的错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库【英文标题】:error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support 【发布时间】:2021-07-11 04:45:03 【问题描述】:我在 jupyter notebook 上做一个手语检测项目。在运行实时检测代码时,我遇到了如下所示的错误:
OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-1drr4hl0\opencv\modules\highgui\src\window.cpp:651:错误:(- 2:Unspecified error) 功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库。如果您在 Ubuntu 或 Debian 上,请安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或在函数 'cvShowImage' 中配置脚本
尽管尝试了许多我在网上找到的解决方案,但我仍然遇到同样的错误。
遇到错误的代码是: 而真: ret, frame = cap.read() image_np = np.array(frame)
input_tensor = tf.convert_to_tensor(np.expand_dims(image_np, 0), dtype=tf.float32)
detections = detect_fn(input_tensor)
num_detections = int(detections.pop('num_detections'))
detections = key: value[0, :num_detections].numpy()
for key, value in detections.items()
detections['num_detections'] = num_detections
# detection_classes should be ints.
detections['detection_classes'] = detections['detection_classes'].astype(np.int64)
label_id_offset = 1
image_np_with_detections = image_np.copy()
viz_utils.visualize_boxes_and_labels_on_image_array(
image_np_with_detections,
detections['detection_boxes'],
detections['detection_classes']+label_id_offset,
detections['detection_scores'],
category_index,
use_normalized_coordinates=True,
max_boxes_to_draw=5,
min_score_thresh=.5,
agnostic_mode=False)
cv2.imshow('object detection', cv2.resize(image_np_with_detections, (800, 600)))
if cv2.waitKey(1) & 0xFF == ord('q'):
cap.release()
break
请帮帮我!
【问题讨论】:
你是如何安装 OpenCV 的?你自己建的吗? 使用 pip 安装 【参考方案1】:几个小时后,在 Karthik Thilakan 的第一个答案的评论下看到了这个解决方案
pip uninstall opencv-python-headless -y
pip install opencv-python --upgrade
这在 conda 环境中对我有用。谢谢卡提克! :)
【讨论】:
【参考方案2】:这个错误主要与 Pycharm Ide 相关,我通过更改项目解释器解决了这个问题,互联网上没有一个给定的解决方案对我有用。
【讨论】:
【参考方案3】:我试图将一组文件从 Ubuntu 18.04 LTD 移动到我的 Windows10,并运行 cli 进行推理,并出现与开篇文章中提到的相同的错误......我正在检查版本Ubuntu 和 Windows 中的 Open-CV 和 Open-CV Headless,它们完全相同......当它在 Ubuntu 上执行时,它在 Windows 中抛出了错误......我删除了 Open-CV无头并升级了Open-CV,并使用相同的命令集和Windows开始执行CLI进行推理......
【讨论】:
这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review【参考方案4】:本周我安装了另一个 GPU,终于升级到了 Tensorflow 2,突然,同样的问题出现了。我终于找到了我的错误以及为什么卸载和重新安装 opencv 对某些人有效。该问题在名为 METADATA 的 opencv-python dist-packages 中的文本文件中明确说明。
它说明了;
有四种不同的包(请参阅下面的选项 1、2、3 和 4),您应该只选择其中一个。不要在同一个环境中安装多个不同的包。
此外,文件说;
如果您不使用
cv2.imshow
等,则应始终使用这些软件包。或者您正在使用 OpenCV 之外的其他包(例如 PyQt)来创建您的 GUI。
参考
用于服务器(无头)环境的包 ...(没有)GUI 库依赖项
所以,如果你跑了;
pip list | grep opencv
结果是不止一个 opencv 版本,你可能已经找到了你的问题。虽然卸载和重新安装 opencv 可能会解决您的问题,但更巧妙的解决方案是简单地卸载无头版本,因为它不关心 GUI,因为它应该在服务器环境中使用。
【讨论】:
在我升级 Tensorflow 时打了他。 pip uninstall opencv-python-headless 修复了它。 Ubuntu 20.04、python 3.8、Opencv 4.5.4【参考方案5】:我在 Windows 10 上使用 yolov5 时遇到了完全相同的错误。通过键入重新构建库
pip uninstall opencv-python
然后
pip install opencv-python
为我工作。
【讨论】:
谢谢,我上周解决了这个问题。正如你提到的,我尝试使用以下命令重新安装 OpenCVpip uninstall opencv-python-headless -y
pip install opencv-python --upgrade
@KarthikThilakan 的上述评论值得自己回答
尝试作为 greg245 提到没有成功。 Karthik Thilakan 建议的命令对我有用以上是关于错误:(-2:未指定的错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库的主要内容,如果未能解决你的问题,请参考以下文章