Pythonの学習の過程とか

学習の記録をつけておきましょう。すぐ忘れるんだから。

Python OpenCVの基礎 もうちょっとNumpyでROI

ROI(region of images) を学んでいきます

こんな感じのことをやってみます

f:id:PeaceAndHiLight:20160106234022j:plain

つまり領域のことですね。画素単位でちまちま設定したりするのではなく、画像を一つの矩形として、一気に塗りつぶしたりしてみようというのが今回の目的です。

for文を使って座標を指定して画素に対して1つずつ色設定、というやり方もあるでしょうが、一括でできる部分はサクッとやってしまいましょう。

今回はコチラを参考にさせていただきました。ありがとうございます。勉強になりました。

takamints.hatenablog.jp

OpenCV: Basic Operations on Images

Numpyのndarrayに画素を適当にいれて、それを画像として保存する

zeros

https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.zeros.html#numpy.zeros

Return a new array of given shape and type, filled with zeros.

zerosはNumpyのメソッドで、任意の大きさと型でできた画像のための配列をつくゼロで初期化してくれます。

zerosで初期化した配列に色を設定する。

imgはもちろんnumpy.ndarray型になっています。 3を指定したのでimgは3次元の配列で、それぞれにBGRの値を入れていくことができるわけですね。 そのひとつひとつの画素はuint8で作っています。ここまで指定できるんですね。

ウインドウ表示

zerosで初期化したままの配列

f:id:PeaceAndHiLight:20160106232921p:plain

色を配置してみた

f:id:PeaceAndHiLight:20160106232929p:plain

なんか荒くてすみません。。。。

こんなこともできるみたい

ジョン・レノンの顔をコピーして、ごめん、リンゴの顔の上にコピーしてみたいと思います。 今回はあらかじめフォトショップなどで座標を確認しています。

今後学習が進めば、顔を検出してその部分をコピーするという離れ業が可能になることでしょう

Python Copy ROI

元画像

f:id:PeaceAndHiLight:20151223203940j:plain

結果

f:id:PeaceAndHiLight:20160106234022j:plain

かえすがえす、荒くてすみません。。。。

若干色が変わっていますよね? 画像保存の際に指定するオプションなどがあるのでしょうか???

今回はここまで!

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理