Edited at

docker + jupyter で画像処理用コンテナ

More than 1 year has passed since last update.

dockerで画像処理用コンテナをパッと作る。


Dockerfile

FROM jupyter/base-notebook

USER root
RUN apt-get update -y && apt-get install -y python-opencv

USER jovyan
RUN pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master \
jupyter_nbextensions_configurator pillow opencv-python
RUN jupyter contrib nbextension install --user && jupyter nbextensions_configurator enable --user

詳細は以下に


  • ベースのイメージはjupyter公式の最もベーシックなものです。 → jupyter/base-notebook

  • このimageを起動するとjovyanユーザーでnotebookが起動されるので、apt等でシステム側に必要なパッケージをインストールしてます。例としpython-opencvをインストールしてますが、必要なものをインストールしてください。

  • 便利そうなので、nbextensions周りをインストールしてます。


起動

Dockerfileを置いたディレクトリに移動して、

buildDockerfileを変更をしない限りは一度だけ実行すればOKです。

docker build -t jupyter_blog .

run

docker run -it --rm -v $PWD:/home/jovyan/work --name jupyter_blog -p 8888:8888 jupyter_blog

詳細は以下



  • jupyter_blog という名前をつけてbuildしてます。

  • カレントディレクトリをdocker内の /home/jovyan/work にマウントしてます。使う画像ファイルとか .ipynb ファイルとかをここに入れて使ってます。

  • あとは起動後に、 http://localhost:8888/?token=**************** というようなURLが出力されるので、このURLにアクセスするとOKです。


処理例

gist

uitspitss/practice.ipynb

from IPython.display import display

from PIL import Image
import cv2
import numpy as np

img = Image.open('myicon.jpg')
display(img)

_img = np.asarray(img)
_img = cv2.GaussianBlur(_img, (45, 1), 0)
display(Image.fromarray(_img))