繁体   English   中英

在 Ubuntu 16 上安装 openCV 时如何在 cmake 中包含 libgtk2.0-dev 和 pkg-config

[英]How to include libgtk2.0-dev and pkg-config in cmake when installing openCV on Ubuntu 16

我知道有很多关于如何安装 OpenCV-Python 的主题。 我浏览了其中的许多,他们帮助我解决了在 Ubuntu 上安装 openCV-python 的一些问题

我设法安装了 openCV,但无法正常工作。 当我尝试运行时:

import numpy
import cv2
img= cv2.imread('image.png',0)
cv2.imshow('image',img)

我收到一个错误

错误:/io/opencv/modules/highui/src/window.cpp:583:错误:(-2)该功能未实现。 使用 Windows、GTK+ 2.x 或 Carbon 支持重建库。 如果您使用的是 Ubuntu 或 Debian,请安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake 或在函数 cvSowImage 中配置脚本

我怎么做? 我怀疑我应该重复 cmake 并以某种方式在其中包含这两个库,但是如何呢?

编辑 2017 年 3 月 19 日我遵循了以下指示:

http://milq.github.io/install-opencv-ubuntu-debian/

http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

来自:

http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

每次我的脚本包括(我从 IDLE 运行):

cv2.imshow('image',img )

我收到了同样的错误信息:

Traceback (most recent call last):

      File "/home/dcanals/Documents/test.py", line 5, in <module>
        cv2.imshow('image',img)
    error: /io/opencv/modules/highgui/src/window.cpp:583: error: (-2) 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 in function cvShowImage

我不明白这是怎么回事。 我只是想让 openCV 开始学习这个包。 我已经安装了 libgtk2 和 pkg-config。 我按照说明一步一步来。 为什么它不起作用? 我现在应该怎么做才能让 python-openCV 工作? 谢谢

编辑 2017 年 3 月 21 日

我编辑这篇文章是因为我认为我在以下位置找到了非常重要的文档: https : //pypi.python.org/pypi/opencv-python

哪里写了关于包“opencv-python”的:

重要的提示:

MacOS 和 Linux 轮子有一些限制:

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


解决了

我设法让它工作。

问题是我有一个混合的包,这可能是不兼容的。 我第一次尝试安装 OpenCV 时,我使用了 opencv-python 包。 它没有用,所以我尝试用python构建官方的opencv。 没有任何效果。

解决方案是重新安装 Ubuntu 16.10 并从官方站点重新安装 opencv。

conda install -c menpo opencv=2.4.11

解决方法在这个线程: OpenCV error: the function is not implementation

解决了我在 Ubuntu 14.04 上的问题。 尽管您需要有 Anaconda2 才能使用它。 但是一旦你有了包含和库,你就可以把它们取出来并在你的程序中使用它们。

pip安装opencv解决了我的问题:

pip install opencv-python

我认为 cmake 在场景中太复杂了。 在 Ubuntu 18.04 上删除 OpenCV 3.4.2 并安装 OpenCV 4.2 后,我已经解决了这个问题

  1. 执行如下命令。

    $ conda 删除 opencv $ conda install -c menpo opencv $ pip install --upgrade pip $ pip install opencv-contrib-python

  2. 在终端中检查版本。

打开Python界面:

>>> import cv2

>>> print(cv2.getBuildInformation())

General configuration for OpenCV 4.2.0 ==============

Reference: https://pythonpedia.com/en/knowledge-base/40207011/opencv-not-working-properly-with-python-on-linux-with-anaconda--getting-error-that-cv2-imshow---is-not-implemented

干杯

我用最新的 opencv-python 遇到了这个问题。 降级 opencv-python 对我有用。

pip install opencv-python==4.0.1.23

或者

pip install opencv-python==4.0.0.21

我遇到了同样的问题,花了几天时间摸索着找到了合适的解决方案。 我确实找到了解决方案,但在此之前让我先回答您的问题。

我怎么做? 我怀疑我应该重复 cmake 并以某种方式在其中包含这两个库,但是如何呢?

pkg-config:您不必在 cmake 中包含“pkg-config”。

[ 如果您是像我这样的新手,“pkg-config”提供了编译程序并将程序链接到库所需的详细信息。 此元数据存储在 pkg-config 文件中(例如,带有 *.pc 后缀的文件,在/usr/lib/pkgconfig目录中)。 如果系统没有 pkg​​-config,它可以从终端使用sudo apt-get install pkg-config ]

libgtk2.0-dev:在重新运行 cmake 时使用cmake -D WITH_GTK=ON ..配置。 如果您的系统中没有 libgtk,可以使用sudo apt-get install libgtk2.0-dev

我的问题:我遇到的问题是,我同时配置了-D WITH_QT = ON-D WITH_GTK = ON 虽然我在系统中有libgtk ,但出于某种原因,它显示了以下错误消息:

安装 libgtk2.0-dev 和 pkg-config,然后重新运行 cmake

我的解决方案:我在重新运行 cmake 时使用 QT 而不是 GTK。 在重新运行之前,我使用dpkg --purge libgtk2.0-dev ,然后使用make uninstall从构建目录中卸载了 opencv。

接下来,使用sudo apt-get install libqt5-default cmake 从 opencv 构建目录使用-D WITH_QT = ON-D WITH_GTK = OFF make install -D WITH_GTK = OFF ,最后make install 你猜怎么着! 又恢复运行了!! 但使用与 QT 不同的 GUI。

在我看来,反之亦然也是可能的,使用-D WITH_GTK = ON ,只需确保您的系统中正确安装了libgtk2.0-dev [由于某种原因在我的情况下不起作用:(]

我刚到这里寻找相同的答案...简单的解决方案 1. 安装 libgtk2.0-dev 2. 重新编译并重新安装 opencv

我正在使用 opencv 3.4.6 并且我正在从源代码构建它。 重要的是卸载它你使用

须藤使卸载

来自您执行 make install 的同一构建目录。 我不需要更改我的 cmake 文件中的任何内容。

安装 libgtk2.0-dev 和 pkg-config 文件解决了错误。 (在 Opencv4 中测试)

您必须从 OpenCV 构建目录重新运行 cmake。

sudo apt-get install pkg-config
sudo apt-get install libgtk2.0-dev

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM