Pythonでモザイク画像処理をする方法を簡単に紹介します。
Pythonのインストール
Pythonのダウンロードとインストール | Python入門 (javadrive.jp)
必須ライブラリのインストール
Pythonのインストール後、
新しく作成した作業を行うフォルダ内でコマンドプロンプトをこのように起動します。
次に、
pip install numpy
pip install pandas
pip install matplotlib
pip install opencv-python
をコマンドプロンプト上で一行ずつ打ち込みます。
エラーが表示されインストールできない場合は、pipのアップグレードをしてみて下さい。
python -m pip install --upgrade pip
をコマンドプロンプトで入力
pip listと打ち込むと現在インストールされているライブラリが表示されるので、きちんとインストールされているかを確認して下さい。
これでpythonの設定は終了です。実際にコードを書いてみます!
もざいく画像を作ってみる
メモ帳に下記コードを写し、好きなファイル名.pyで作業フォルダ内に保存して下さい。
#numpyをnpという名前に変えてインポートする。(npと書いたほうが短かく楽だから) #sysとcv2もこのファイルで使えるようにする import numpy as np import sys import cv2 #コマンドライン引数を、変数in_file , out_fileに代入 in_file = sys.argv[1] out_file = sys.argv[2] #画像を読み込み、float型へ変換 img = cv2.imread(in_file) img = np.float64(img) #ここから画像編集 #img[y,x,2]で、高さy,横幅xの赤の値を所得。img[y,x,1]で緑 #shape[0]は、画像の高さ何pxあるかを取得。shape[1]は画像の横幅 #5*5pxごとに色の平均をもとめ、その5*5pxにまとめて同じ値を代入 for y in range( int( img.shape[0] / 5 + 1) ) : for x in range( int( img.shape[1] / 5 + 1) ) : #スライスを使用 R = img[y*5:(y+1)*5, x*5:(x+1)*5, 2] red = np.mean(R) img[y*5:(y+1)*5, x*5:(x+1)*5, 2] = red G = img[y*5:(y+1)*5, x*5:(x+1)*5, 1] green = np.mean(G) img[y*5:(y+1)*5, x*5:(x+1)*5, 1] = green B = img[y*5:(y+1)*5, x*5:(x+1)*5, 0] blue = np.mean(B) img[y*5:(y+1)*5, x*5:(x+1)*5, 0] = blue #画像をout_fileに代入された名前で書き出し cv2.imwrite(out_file, np.uint8( img) )
作業フォルダ内にモザイク処理をしたい画像も入れ、
この2つのファイルがあるフォルダでコマンドプロンプトを開き、
python 上記コードが書かれたファイル名.py モザイク処理をしたい画像ファイル名.画像ファイルの拡張子 書き出し先のファイル名.画像ファイルの拡張子
を打ち込むと、そのフォルダ内にモザイク画像が施されたファイルが生成されます。
OpenCVは画像処理には欠かせないライブラリです。今回は便利な関数は特に使いませんでしたが、いろいろな関数があるのでこれをきっかけに深く調べてみて下さい!