如何在没有 nVidia 驱动程序的情况下安装 OpenCV

如何在没有 nVidia 驱动程序的情况下安装 OpenCV

我有一台带有板载 Intel 显卡的笔记本电脑。多年来我一直在这台机器上使用 OpenCV,到目前为止我已经设法避免了手动编译。但在 Ubuntu 13.10 中,当我尝试libopencv-dev从存储库安装时,它会带来libopencv-ocl,这似乎依赖于 nvidia 驱动程序。让驱动程序安装会完全弄乱我的 xserver,当我glxinfo之后这样做时,我得到了这个:

name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".

为了解决这个问题,我清除了所有 nVidia 驱动程序并重新安装了 xserver,就像有人建议的那样这里,当我清除 nvidia 驱动程序时,OpenCV 开发库也会被删除,因为apt-get告诉我它们是no longer needed。这对我来说很陌生,因为我预计会收到警告,说我安装了依赖于此的软件包,但是删除依赖项如何自动删除我安装的软件包而不发出警告或询问?我知道这与 nVidia 是libopencv-oclrepo 中的 的提供商有关。我该如何解决这个问题?如果可以的话,我宁愿不编译 OpenCV。我见过类似问题,但不是一个合适的答案。

答案1

我遇到了同样的问题,为了解决这个问题,你可以安装 libopencl1 的替代提供程序。如果没有适用于你的特定显卡的提供程序(即,存储库中似乎没有适用于 AMD/ATI 的提供程序),你可以使用通用的提供程序:

sudo apt-get install ocl-icd-libopencl1

如果您已经安装了 libopencv-dev,您还需要删除它带来的冗余包:

sudo apt-get autoremove

对我来说,默认引入 Nvidia 提供程序而不是通用提供程序似乎很奇怪 - 也许某些打包向导可以解决这个问题。

这里有一个与此问题相关的错误: https://bugs.launchpad.net/ubuntu/+source/opencv/+bug/1245260

答案2

sudo apt-get install libopencv-highgui-dev

然后从源代码进行编译,这也有一个好处,即可以使用 SIFT 和 SURF 非自由模块。

相关内容