Sign inSign up

oza6ut0ne/opencv

By oza6ut0ne

Updated about 6 years ago

Image
0

2.1K

oza6ut0ne/opencv repository overview

OpenCV docker image (unofficial)

Dockerfile (latest)

#syntax=docker/dockerfile:experimental
FROM python:3.8.5 as opencv
CMD ipython

WORKDIR /workspace
ENV PYTHONIOENCODING "utf-8"

ARG MAKEFLAGS=""
RUN apt update && \
    apt -y install --no-install-recommends \
                   wget build-essential cmake unzip pkg-config \
                   libjpeg-dev libpng-dev libtiff-dev \
                   libavcodec-dev libavformat-dev libswscale-dev libv4l-dev v4l-utils \
                   libxvidcore-dev libx264-dev libgtk-3-dev \
                   liblapacke-dev libopenblas-dev libeigen3-dev gfortran python3-dev \
                   libgstreamer1.0-0 gstreamer1.0-plugins-base \
                   gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
                   gstreamer1.0-plugins-ugly gstreamer1.0-libav \
                   gstreamer1.0-doc gstreamer1.0-tools \
                   gstreamer1.0-plugins-base-apps \
                   libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
    && apt autoremove && apt clean \
    && rm -rf /var/lib/apt/lists/*

RUN pip install -v numpy \
    && pip install -v jupyter \
                      jupyterlab \
                      matplotlib \
                      Pillow \
                      SimpleHTTPSAuthServer \
    && pip install -v imageio imageio-ffmpeg scipy scikit-image scikit-learn pandas \
    && rm -rf /root/.cache/pip /root/.python_history /root/.wget-hsts

RUN --mount=type=tmpfs,target=/workspace \
    wget -O opencv.zip https://github.com/opencv/opencv/archive/4.3.0.zip \
    && wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.3.0.zip \
    && unzip opencv.zip \
    && unzip opencv_contrib.zip \
    && mv opencv-4.3.0 opencv \
    && mv opencv_contrib-4.3.0 opencv_contrib \
    && cd opencv \
    \
    && ABI=$(ls /usr/lib/ | grep -E '.+-linux-gnu.*') \
    && OPENBLAS_INCLUDE_DIR=/usr/include/${ABI} \
    && OPENBLAS_LIB_DIR=/usr/lib/${ABI} \
    && ln -s /usr/include/lapacke.h ${OPENBLAS_INCLUDE_DIR}/ \
    && sed -i "/^SET(Open_BLAS_INCLUDE_SEARCH_PATHS\$/a \ \ ${OPENBLAS_INCLUDE_DIR}" cmake/OpenCVFindOpenBLAS.cmake \
    && sed -i "/^SET(Open_BLAS_LIB_SEARCH_PATHS\$/a \ \ ${OPENBLAS_LIB_DIR}" cmake/OpenCVFindOpenBLAS.cmake \
    \
    && mkdir build \
    && cd build \
    && cmake -D CMAKE_BUILD_TYPE=RELEASE \
             -D OPENCV_ENABLE_NONFREE=ON \
             -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
             -D WITH_1394=OFF -D WITH_FFMPEG=OFF -D WITH_GSTREAMER_0_10=OFF \
             -D WITH_GSTREAMER=ON -D WITH_LAPACK=ON -D WITH_EIGEN=ON \
             -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON \
             -D PYTHON_EXECUTABLE=$(which python) \
             -D PYTHON3_EXECUTABLE=$(which python) \
             -D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
             -D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
             -D PYTHON_DEFAULT_EXECUTABLE=$(which python) \
             -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") \
             -D BUILD_EXAMPLES=ON \
             -D INSTALL_PYTHON_EXAMPLES=ON \
             -D INSTALL_C_EXAMPLES=ON \
             -D OPENCV_GENERATE_PKGCONFIG=ON .. \
    && make \
    && make install \
    && cd /workspace/opencv/build/bin \
    && cp -n $(ls | grep -v -E '.*_perf_.*|.*_test_.*') /usr/local/bin/ \
    && ldconfig \
    && rm -rf /workspace/opencv* /root/.wget-hsts

FROM opencv as printi
RUN apt update && \
    apt -y install clang-6.0 libclang-6.0-dev \
    && apt autoremove && apt clean \
    && rm -rf /var/lib/apt/lists/*

RUN --mount=type=tmpfs,target=/root/.cargo \
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
    && . /root/.cargo/env \
    && cargo install --git https://github.com/oza6ut0ne/printimg-rust.git \
    && strip /root/.cargo/bin/printi \
    && cp /root/.cargo/bin/printi /tmp/printi

FROM opencv
COPY --from=printi /tmp/printi /usr/local/bin/

Tag summary

Content type

Image

Digest

Size

853.4 MB

Last updated

about 6 years ago

docker pull oza6ut0ne/opencv