【问题标题】:error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support错误:(-2:未指定的错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库
【发布时间】: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 安装

标签: python tensorflow opencv machine-learning computer-vision


【解决方案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
      

      为我工作。

      【讨论】:

      • 谢谢,我上周解决了这个问题。正如你提到的,我尝试使用以下命令重新安装 OpenCV pip uninstall opencv-python-headless -y pip install opencv-python --upgrade
      • @KarthikThilakan 的上述评论值得自己回答
      • 尝试作为 greg245 提到没有成功。 Karthik Thilakan 建议的命令对我有用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2022-08-16
      相关资源
      最近更新 更多