我试图让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时,它给了我同样的错误,我是不是遗漏了什么?
7条答案
按热度按时间goqiplq21#
如果 它 给 你 gtk 的 错误 , 尝试 qt 。
中 的 每 一 个
如果 这样 不行 , 还有 一 个 简单 的 办法 。
格式
这 将 下载 所有 必需 的 依赖 项( 虽然 看 起来 你 已经 安装 了 所有 需要 的 库 , 但是 你 仍然 可以 尝试 一 次 ) 。( Ubuntu 12.04 ) 。 但是 因为 你 在
/usr/local/lib
中 有 OpenCV 2.4.3 , 所以 在/etc/ld.so.conf
中 包含 这个 路径 , 然后 执行ldconfig
。 所以 现在 无论 你 什么 时候 使用 OpenCV ,你 应该 用 最 新 的 版本 。 这 不是 最 好 的 方法 , 但是 如果 你 仍然 有 qt 或 gtk 的 问题 , 试 一 次 。 这 应该 可以 。我 在 openCV 3.4.2 的 Ubuntu ( 18.04.1 LTS ) 系统 上 遇到 了 这个 错误 , 因为 对
cv2.imshow
的 方法 调用 失败 ( 例如 , 在 cv2.namedWindow ( name ) 的 行 出现 错误 :cv2.error : OpenCV ( 3.4.2 ) . 这个 函数 没有 实现 . ) . 我 用 的 是 anaconda . 下面 的 两 个 步骤 帮助 我 解决 了 这个 问题 :格式
如果 您 正在 使用 pip , 可以 尝试
格式
9ceoxa922#
不要浪费你的时间试图解决这个问题,这是明确的制造商自己。而不是
cv2.imshow()
使用这个:t98cgbkg3#
如果您在任何时间点使用opencv-python pip包安装了OpenCV,请注意以下注解(摘自https://pypi.python.org/pypi/opencv-python
重要注意事项MacOS和Linux转轮目前有一些限制:
cv2.imshow()
将无法工作(未使用GTK+ 2.x或Carbon支持进行编译)另请注意,要从其他源进行安装,首先必须删除opencv-python软件包
7jmck4yq4#
我希望这个答案仍然有用,尽管问题似乎相当古老。
如果安装了Anaconda,并且OpenCV不支持GTK+(如本例所示),则只需键入
它将安装合适的OpenCV版本,不会产生上述错误。此外,它将重新安装以前安装的OpenCV,如果有一个作为Anaconda的一部分。
elcex8rz5#
这是因为'opencv-python-headless'。卸载它!
wr98u20j6#
在安装libgtk2.0-dev和pkg-config或libqt 4-dev之前,请确保您已经卸载了opencv。您可以通过在python shell上运行import cv 2来确认这一点。如果失败,请安装所需的软件包并重新运行cmake。
7fhtutme7#
这是由于opencv-python与opencv-contrib-python、opencv-python-headless软件包有某种重叠。只需卸载headless和contrib。
然后卸载opencv-python。
然后只安装OpenCV-python,这样就可以解决这个问题了。