OpenCV错误:函数未实现

c2e8gylq  于 2022-11-15  发布在  其他
关注(0)|答案(7)|浏览(106)

我试图让OpenCV在我的Ubuntu机器上与Python一起工作。我已经下载并安装了OpenCV,但是当我试图运行下面的python代码时(它应该从网络摄像头捕捉图像并将它们推到屏幕上)

import cv

cv.NamedWindow("w1", cv.CV_WINDOW_AUTOSIZE)
capture = cv.CaptureFromCAM(0)

def repeat():
    frame = cv.QueryFrame(capture)
    cv.ShowImage("w1", frame)
    time.sleep(10)

while True:
    repeat()

出现以下错误:

The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or
Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and
pkg-config, then re-run cmake or configure script

所以我照他们说的做了:安装软件包,移动到我安装OpenCV的文件夹,然后运行

sudo make uninstall
make
sudo make install

但是当我试图运行python时,它给了我同样的错误,我是不是遗漏了什么?

goqiplq2

goqiplq21#

如果 它 给 你 gtk 的 错误 , 尝试 qt 。

sudo apt-get install libqt4-dev
cmake -D WITH_QT=ON ..
make
sudo make install

中 的 每 一 个
如果 这样 不行 , 还有 一 个 简单 的 办法 。

sudo apt-get install libopencv-*

格式
这 将 下载 所有 必需 的 依赖 项( 虽然 看 起来 你 已经 安装 了 所有 需要 的 库 , 但是 你 仍然 可以 尝试 一 次 ) 。( Ubuntu 12.04 ) 。 但是 因为 你 在 /usr/local/lib 中 有 OpenCV 2.4.3 , 所以 在 /etc/ld.so.conf 中 包含 这个 路径 , 然后 执行 ldconfig 。 所以 现在 无论 你 什么 时候 使用 OpenCV ,你 应该 用 最 新 的 版本 。 这 不是 最 好 的 方法 , 但是 如果 你 仍然 有 qt 或 gtk 的 问题 , 试 一 次 。 这 应该 可以 。

    • 更新 * * - 2019 年 6 月 18 日

我 在 openCV 3.4.2 的 Ubuntu ( 18.04.1 LTS ) 系统 上 遇到 了 这个 错误 , 因为 对 cv2.imshow 的 方法 调用 失败 ( 例如 , 在 cv2.namedWindow ( name ) 的 行 出现 错误 :cv2.error : OpenCV ( 3.4.2 ) . 这个 函数 没有 实现 . ) . 我 用 的 是 anaconda . 下面 的 两 个 步骤 帮助 我 解决 了 这个 问题 :

conda remove opencv
conda install -c conda-forge opencv=4.1.0

格式
如果 您 正在 使用 pip , 可以 尝试

pip install opencv-contrib-python

格式

9ceoxa92

9ceoxa922#

不要浪费你的时间试图解决这个问题,这是明确的制造商自己。而不是cv2.imshow()使用这个:

img = cv2.imread('path_to_image')
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()
t98cgbkg

t98cgbkg3#

如果您在任何时间点使用opencv-python pip包安装了OpenCV,请注意以下注解(摘自https://pypi.python.org/pypi/opencv-python

重要注意事项MacOS和Linux转轮目前有一些限制:

  • 不支持视频相关功能(未使用FFmpeg编译)
  • 例如cv2.imshow()将无法工作(未使用GTK+ 2.x或Carbon支持进行编译)

另请注意,要从其他源进行安装,首先必须删除opencv-python软件包

7jmck4yq

7jmck4yq4#

我希望这个答案仍然有用,尽管问题似乎相当古老。
如果安装了Anaconda,并且OpenCV不支持GTK+(如本例所示),则只需键入

conda install -c menpo opencv=2.4.11

它将安装合适的OpenCV版本,不会产生上述错误。此外,它将重新安装以前安装的OpenCV,如果有一个作为Anaconda的一部分。

elcex8rz

elcex8rz5#

这是因为'opencv-python-headless'。卸载它!

pip uninstall opencv-python-headless
wr98u20j

wr98u20j6#

在安装libgtk2.0-dev和pkg-config或libqt 4-dev之前,请确保您已经卸载了opencv。您可以通过在python shell上运行import cv 2来确认这一点。如果失败,请安装所需的软件包并重新运行cmake。

7fhtutme

7fhtutme7#

这是由于opencv-python与opencv-contrib-python、opencv-python-headless软件包有某种重叠。只需卸载headless和contrib。

pip uninstall opencv-contrib-python

pip uninstall opencv-python-headless

然后卸载opencv-python。

pip uninstall opencv-python

然后只安装OpenCV-python,这样就可以解决这个问题了。

pip install opencv-python

相关问题