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を置いたディレクトリに移動して、

build ※Dockerfileを変更をしない限りは一度だけ実行すれば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))
广告
将在 10 秒后关闭
bannerAds