apollo docker中无法使用opencv显示修复

apollo docker中无法使用opencv显示修复

问题需求

在docker中无法使用opencv显示图像,调试代码非常的困难。报错如下

The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.

解决办法

  1. 第一步,进入docker中,安装libgtk2.0-dev 和 pkg-config库。
  2. 下载opencv4.4.0
  3. 编译安装,注意使用以下编译选项。根据apollo中install_opencv.sh中来具体如下
    注意: 一定要将 -DWITH_GTK=ON设置为ON 。否则无法支持gtk选项。
    mkdir build && cd build
        cmake .. \
            -DCMAKE_INSTALL_PREFIX=/opt/apollo/sysroot \
            -DCMAKE_BUILD_TYPE=Release \
            -DBUILD_SHARED_LIBS=ON          \
            -DENABLE_PRECOMPILED_HEADERS=OFF \
            -DOPENCV_GENERATE_PKGCONFIG=ON  \
            -DBUILD_EXAMPLES=OFF \
            -DBUILD_DOCS=OFF    \
            -DBUILD_TESTS=OFF   \
            -DBUILD_PERF_TESTS=OFF  \
            -DBUILD_JAVA=OFF     \
            -DBUILD_PROTOBUF=OFF \
            -DPROTOBUF_UPDATE_FILES=ON \
            -DINSTALL_C_EXAMPLES=OFF   \
            -DWITH_GTK=ON  \
            -DWITH_IPP=OFF  \
            -DWITH_ITT=OFF  \
            -DWITH_TBB=OFF  \
            -DWITH_EIGEN=ON \
            -DWITH_FFMPEG=ON   \
            -DWITH_LIBV4L=ON   \
            -DWITH_OPENMP=ON   \
            -DWITH_OPENNI=ON   \
            -DWITH_OPENCL=ON   \
            -DWITH_WEBP=ON     \
            -DOpenGL_GL_PREFERENCE=GLVND \
            -DBUILD_opencv_python2=OFF  \
            -DBUILD_opencv_python3=ON   \
            -DBUILD_NEW_PYTHON_SUPPORT=ON \
            -DPYTHON_DEFAULT_EXECUTABLE="$(which python3)" \
            -DOPENCV_PYTHON3_INSTALL_PATH="/usr/local/lib/python$(py3_version)/dist-packages" \
            -DOPENCV_ENABLE_NONFREE=ON \
            -DCV_TRACE=OFF      \
  1. 安装。
sudo make install
  1. 将现有的容器保存。
docker commit -m "add opencv gtk on" 041498c0b97f apolloauto/apollo:dev-x86_64-18.04-20200914_0742_opencv
  1. 退出apollo docker。
  2. 删除原来镜像,并将新的镜像重命名为原来镜像名字。请对照自己的镜像进行修改。
// commit镜像
docker commit -m "add opencv gtk on" 041498c0b97f apolloauto/apollo:dev-x86_64-18.04-20200914_0742_opencv

// 删除原有镜像
docker rmi apolloauto/apollo:dev-x86_64-18.04-20200914_0742 -f

// 将opencv镜像重命名为原来镜像名
docker tag apolloauto/apollo:dev-x86_64-18.04-20200914_0742_opencv apolloauto/apollo:dev-x86_64-18.04-20200914_0742

// 删除opencv镜像tag
docker rmi apolloauto/apollo:dev-x86_64-18.04-20200914_0742_opencv

  1. 重新启动镜像即可以显示opencv图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值