contentopencv-python画像処理入門PythonOpenCV機械学習用の画像の前処理方法を調べたのを書いていきます。中途半端な内容ですが、今後書き足していくと思います。cv2.imread()ここからは適当な画像ファイルを読み込んで使っていきます。cv2.imread()するとnumpy.arrayとして画像を読み込めます。notebookで動かないようなので、plt.imshow()で表示していきます。cv2.COLOR_BGR2RGB)でRとBを入れ替えてから表示してやります。sigma)opencvドキュメントhttp://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_filtering/py_filtering.html画像をぼかすフィルターです。sizeが縦横サイズ、sigmaが縦横の標準偏差です。sigmaも縦横それぞれ指定することが出来ますが、省略すると縦横とも同じ標準偏差を使用します。size、sigmaとも大きくするとボケる度合が強くなります。gamma)opencvドキュメントhttps://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.htmlこんな感じで混ぜ合わせた画像が作れます。betaに1より大きい値を入れる事ができますが値が大きい画素は値が振り切るので右端の画像のようにちょっと不思議な混じり方をします。ax.set_yticks([])plt.show()ぼかしとアルファ合成を使って輪郭強調ぼかした画像を元画像から引くようにすると輪郭を強調できます。cv2.COLOR_BGR2RGB))ax.set_title('addWeighted')ax.set_xticks([])ax.set_yticks([])plt.show()元の画像をalpha=1.5、ブラーをかけた画像をbeta=-0.5で混合すると輪郭が強調された画像になります。kernel)畳み込みフィルタ関数です。配列の値を変えるといろんなフィルタ処理を実装できるようです。上でやっていたgaussianBlur()もこの関数で実装できます。平行移動kernelを[1]にすると元の画像と同じものが出来ます。それなりに大きい配列のどこかを1、他は全部0にすると以下のように平行移動させることもできます。cv2.COLOR_BGR2RGB))ax.set_xticks([])ax.set_yticks([])ax.set_title('moved')plt.show()足りない分は鏡像が反転して出てきます。平均フィルタkernelを全部同じ値、合計1になるようにすると平均フィルタになります。cv2.blur()と同じです。ax.set_yticks([])plt.show()輪郭強調フィルタ以下のように合計1、中央以外を全部マイナス1にすると輪郭強調フィルタになります。added')ax.set_xticks([])ax.set_yticks([])plt.show()輪郭抽出フィルタ上のフィルタと似ていますが合計がゼロになるようにしてやると輪郭のみを抽出するようなフィルタになります。upLoginユーザーは見つかりませんでした。