OpenCV错误:该函数未实现

时间:2013-02-01 22:17:23

标签: python opencv

我正在尝试让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时,它给了我同样的错误。我错过了什么吗?

6 个答案:

答案 0 :(得分:30)

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

  

重要提示   MacOS和Linux车轮目前存在一些局限性:

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

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

答案 1 :(得分:26)

如果它使用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的问题,试试一次。这应该有用。

答案 2 :(得分:17)

不要浪费你的时间来试图解决这个问题,这让制造商自己明白了,所以不是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()

答案 3 :(得分:8)

我希望这个答案仍然有用,尽管问题似乎已经很久了。

如果您安装了Anaconda,并且您的OpenCV不支持GTK +(如本例所示),您只需输入

即可。
conda install -c menpo opencv=2.4.11

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

答案 4 :(得分:1)

在安装libgtk2.0-dev之前 pkg-config或libqt4-dev。确保已卸载opencv。您可以通过在python shell上运行import cv2来确认这一点。如果失败,则安装所需的包并重新运行cmake。

答案 5 :(得分:1)

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

pip uninstall opencv-python-headless