OpenCV版本1/版本2错误:该功能未实现

k4ymrczo  于 2023-01-26  发布在  其他
关注(0)|答案(8)|浏览(155)

我试图让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时,它给了我同样的错误,我是不是漏掉了什么?

t2a7ltrp

t2a7ltrp1#

如果gtk出现错误,试试qt。

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

如果这不起作用,还有一个简单的办法。

sudo apt-get install libopencv-*

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

更新-2019年6月18日

我在我的Ubuntu(18.04.1 LTS)系统上的openCV 3.4.2中遇到了这个错误,因为对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
yshpjwxd

yshpjwxd2#

不要浪费你的时间试图解决这个问题,这是明确的制造商自己.而不是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()
jdgnovmf

jdgnovmf3#

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

重要说明MacOS和Linux轮盘目前有一些限制:

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

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

uqjltbpv

uqjltbpv4#

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

pip uninstall opencv-python-headless
t0ybt7op

t0ybt7op5#

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

conda install -c menpo opencv=2.4.11

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

xzabzqsa

xzabzqsa6#

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

r8xiu3jd

r8xiu3jd7#

这是由于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
zsbz8rwp

zsbz8rwp8#

这个奇怪的问题也开始发生在我身上,在我使用的几个虚拟环境中的一个中。解决这个问题的方法是卸载opencv,然后重新安装:

pip uninstall opencv-python
pip install opencv-python

相关问题