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))