You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu环境下卸载OpenCV 3.1.0以解决cv2.imshow运行报错问题

解决OpenCV 3.1.0 cv2.imshow报错及重新编译指南

嘿,我来帮你一步步搞定这个OpenCV的问题~你遇到的cv2.imshow报错,确实是当初编译OpenCV时缺少GTK相关依赖导致的,下面是完整的解决流程:

第一步:彻底卸载现有OpenCV 3.1.0

首先得把旧的安装彻底清理干净:

  • 如果你是源码编译安装的,回到当初的编译目录(比如opencv-3.1.0/build),执行:
    sudo make uninstall
    cd ..
    sudo rm -rf build
    
  • 再清理系统里可能残留的OpenCV文件:
    sudo rm -rf /usr/local/lib/python2.7/site-packages/cv2*
    sudo rm -rf /usr/local/lib/cv2*
    sudo rm -rf /usr/local/include/opencv*
    sudo rm -rf /usr/local/share/opencv*
    
  • 要是之前用过apt包管理器装过OpenCV,额外执行这几句:
    sudo apt-get purge libopencv*
    sudo apt-get autoremove
    sudo apt-get clean
    

第二步:安装所有必要依赖

把编译OpenCV需要的依赖都装全,包括报错提示的库:

sudo apt-get update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

第三步:重新编译安装OpenCV 3.1.0

现在带着正确的依赖重新编译:

  1. 回到OpenCV 3.1.0的源码根目录,新建一个build目录并进入:
    mkdir build && cd build
    
  2. 执行cmake配置,一定要明确开启GTK2支持(这是解决imshow报错的关键):
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON ..
    
    小贴士:执行完cmake后,看输出里的GUI:部分,确认GTK+ 2.x显示为YES,说明依赖已经生效了。
  3. 开始编译(-j4可以根据你的CPU核心数调整,比如8核就用-j8,加快编译速度):
    make -j4
    
  4. 安装编译好的库:
    sudo make install
    
  5. 更新系统库缓存,让系统识别到新安装的OpenCV:
    sudo ldconfig
    

第四步:验证修复效果

回到samples/python目录,重新运行你的脚本:

python gabor_threads.py icub.jpg

这时候cv2.imshow应该就能正常弹出窗口显示图片啦~

如果重新编译时遇到具体问题(比如cmake报错、编译中断),把具体的错误信息贴出来,我再帮你针对性排查!

内容的提问来源于stack exchange,提问作者Idil

火山引擎 最新活动