【问题标题】:Installing OpenCV for docker on raspberry Pi3在树莓派 3 上为 docker 安装 OpenCV
【发布时间】:2020-03-06 15:10:46
【问题描述】:

最近我开始使用 Docker,我成功地构建了一些图像,以运行我使用 OpenCV 的 python 脚本。

现在,我想在我的 Raspberry Pi3B+ 上部署这些映像,但我无法在 Pi 上构建它们。我还尝试推送我在我的 Ubuntu 笔记本电脑上成功构建的镜像,然后继续使用 Pi 并拉取镜像以从中运行容器,但它也不起作用。

我发现原因是我所做的只是试图在 armv7 arch(我的 Pi)上使用 amd64 arch(我的笔记本电脑)映像,从而导致某种冲突。

然后我在 Docker Hub 上尝试了一些为 armv7 创建的基础镜像,例如:arm32v7/python:3.6,这是我的 Dockerfile:

FROM arm32v7/python:3.6

RUN apt-get -y update && apt-get -y upgrade \
        && apt-get install -y python3-pip \
        python3-numpy \
        libblas-dev \
        liblapack-dev \
        python3-dev \
        libatlas-base-dev \
        gfortran \
        python3-setuptools \
        python3-scipy \
        && apt-get -y update \
        && apt-get -y install python3-h5py \
        libsm6 \
        libxext6 \
        libxrender-dev 


RUN pip3 install scipy \
                cython \
                keras \
                opencv-python \
                scikit-image 

COPY cut.py detect.py c9_0_04_46_23_0.jpg /opt/
COPY MODEL /opt/MODEL
RUN mkdir -p /opt/anh_cut


WORKDIR /opt/

ENTRYPOINT ["python3", "cut.py"]

OpenCV 安装步骤出错:

找不到满足opencv-python要求的版本

我还尝试将pip config 替换为:

[global]
extra-index-url=https://www.piwheels.org/simple

这是一个arm架构的预编译包存储库,但同样的问题仍然存在。

我有什么办法可以解决这个问题吗?如果没有,我可以在我的笔记本电脑上交叉编译 OpenCV 然后复制到 Dockerfile 吗?如果我能有一些文件可以参考就好了,谢谢。

【问题讨论】:

    标签: python docker opencv raspberry-pi3


    【解决方案1】:

    基于https://www.piwheels.hostedpi.com/,它们支持python版本3.4、3.5和3.7。这是一个引用(重点是我的):

    支持

    提供的车轮支持所有 Raspberry Pi 型号(Pi 4、Pi 3、Pi 2、Pi 1 和 Pi Zero)。为 Raspbian Jessie (Python 3.4)、Raspbian Stretch (Python 3.5) 和 Raspbian Buster (Python 3.7) 提供了轮子。有关可用轮子的信息,请参见每个包的项目页面。


    保留修改后的 pip 配置,并通过以下方式更改 Dockerfile 中的 FROM 子句:

    FROM arm32v7/python:3.7-buster
    

    可能会解决问题。

    【讨论】:

    • 感谢您的建议,我已经可以正常安装opencv了,但是又出现了一个问题,容器内我的python脚本中的import cv2显示错误:ImportError: libjasper.so.1 : 无法打开共享对象文件:没有这样的文件或目录。我做了一些搜索,找到了这个答案 stackoverflow.com/a/48326450/10747627> 但也不太好用。我有没有机会通过复制安装到Dockerfile中找到libjasper源代码并安装?
    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多