本当は別で動画加工をするためにプログラムを作成していたのだが、たまたま別の用途に使用できそうな副産物のプログラムが出来上がったので備忘録として残す。
カメラで撮影した様なノイズ混じりの線画を、パソコン上で彩色しやすい様にはっきりとした白黒に変換するためのプログラムを作成した。
ちなみに使用するのはOpenCVなので「opencv-python」をpipなどでインストールして使える状態にする必要がある。
pip install opencv-python
ちなみにOpenCVというのは画像処理や画像解析のためのライブラリ。
今回はこれのバージョン4.X系を使用する。
(4.Xとそれ以前では、引数や戻り値などに違いがあるので注意)
例: demo.py
#!/usr/bin/python import cv2 # 画像の読み込み image = cv2.imread('target.jpg') # グレースケールに変換 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 閾値で色のついている部分だけを抽出 _, dist = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU) # 画像の吐き出し cv2.imwrite("result.jpg", dist)
変換後の画像は白と黒の二色しかない画像となる。
例:元画像(target.jpg)
例:結果画像(result.jpg)
ちなみにこの時点ノイズの除去は完璧ではない。
「モルフォロジー変換」を使ってうまいこと除去できれば良いのだが、カーネルの指定が恐らくは画像によって調整する必要があるのがちょっと難しい。
記事のタイトルを「塗り絵を作成する」にすればよかった