我试图让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时,它给了我同样的错误,我是不是漏掉了什么?
8条答案
按热度按时间t2a7ltrp1#
如果gtk出现错误,试试qt。
如果这不起作用,还有一个简单的办法。
这将下载所有必需的依赖项(虽然看起来你已经安装了所有需要的库,但是你仍然可以尝试一次)。这可能会安装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.下面两个步骤帮我解决了这个问题:如果您正在使用pip,可以尝试
yshpjwxd2#
不要浪费你的时间试图解决这个问题,这是明确的制造商自己.而不是
cv2.imshow()
使用这个:jdgnovmf3#
如果您在任何时候使用opencv-python pip包安装OpenCV,请注意以下注解(摘自https://pypi.python.org/pypi/opencv-python
重要说明MacOS和Linux轮盘目前有一些限制:
cv2.imshow()
将不起作用(未使用GTK+ 2.x或Carbon支持进行编译)另请注意,要从其他源安装,首先必须删除opencv-python软件包
uqjltbpv4#
这是因为'opencv-python-headless'。卸载它!
t0ybt7op5#
我希望这个答案仍然是有用的,尽管问题似乎是相当古老的。
如果安装了Anaconda,并且OpenCV不支持GTK+(如本例所示),则只需键入
它将安装合适的OpenCV版本,不会产生上述错误。此外,它将重新安装以前安装的OpenCV,如果有一个作为Anaconda的一部分。
xzabzqsa6#
在安装libgtk2.0-dev和pkg-config或libqt 4-dev之前,请确保您已经卸载了opencv。您可以通过在python shell上运行import cv 2来确认这一点。如果失败,请安装所需的软件包并重新运行cmake。
r8xiu3jd7#
这是由于opencv-python与opencv-contrib-python、opencv-python-headless包有某种重叠。只需卸载headless和contrib。
然后卸载opencv-python。
这是一个干净的石板在这里。然后只安装OpenCV-python,这将清除您的这个问题。
zsbz8rwp8#
这个奇怪的问题也开始发生在我身上,在我使用的几个虚拟环境中的一个中。解决这个问题的方法是卸载opencv,然后重新安装: