У меня есть ноутбук с встроенной графикой 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-ocl
в репо. Как я мог обойти это? Я бы предпочел не компилировать OpenCV, если смогу помочь. Я видел похожих вопросов , но не подходящего ответа.
У меня была такая же проблема, чтобы обойти ее, вы можете установить альтернативного поставщика 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
sudo apt-get install libopencv-highgui-dev
затем компилировать из источника, это также имеет то преимущество, что доступны несвободные модули SIFT и SURF.