こんにちは、ヒガシです。
前回の記事に引き続き、HSV関連のことを書いていきます。
前回の記事をまだ読んでいない方は、そちらもあわせてご覧ください。
というわけで本題です。
この記事では、python-openCVをつかって、
HSV色空間を加工して、画像の色味を変えてみる
という処理を実演してみようと思います。
この記事を読むことで、前回紹介したHSV色空間に対する理解を深めるとともに、配列処理の基礎まで学ぶことができるはずです。
ぜひ最後までご覧ください。
それではやっていきましょう。
※python&openCVのインストール方法から知りたい方はまずは以下からご覧ください。
画像加工の概要説明
この記事では以下の画像のHSV配列を編集して、
以下の3つの画像を生成してみようと思います。
①Hを加工してみた場合
②Sを加工してみた場合
③Vを加工してみた場合
このように、画像のHSV配列を編集することで、さまざまな画像処理が可能になります。
興味がある人はぜひ続きをご覧ください。
HSV配列編集⇒画像作成のサンプルコード
早速ですが、先ほど紹介した画像達を作成できるサンプルコードの紹介に移りましょう。
〇HSV配列編集⇒画像作成のサンプルコード
※使うライブラリはopenCVだけです。
import cv2
#H_convert
pic=cv2.imread('sample.jpg',cv2.IMREAD_COLOR)
pic=cv2.cvtColor(pic,cv2.COLOR_BGR2HSV)
pic[:,:,0]=pic[:,:,0]+20
pic=cv2.cvtColor(pic,cv2.COLOR_HSV2BGR)
cv2.imwrite('H_convert.jpg',pic)
#S_convert
pic=cv2.imread('sample.jpg',cv2.IMREAD_COLOR)
pic=cv2.cvtColor(pic,cv2.COLOR_BGR2HSV)
pic[:,:,1]=pic[:,:,1]-100
pic=cv2.cvtColor(pic,cv2.COLOR_HSV2BGR)
cv2.imwrite('S_convert.jpg',pic)
#V_convert
pic=cv2.imread('sample.jpg',cv2.IMREAD_COLOR)
pic=cv2.cvtColor(pic,cv2.COLOR_BGR2HSV)
pic[:,:,2]=pic[:,:,2]-100
pic=cv2.cvtColor(pic,cv2.COLOR_HSV2BGR)
cv2.imwrite('V_convert.jpg',pic)
各処理において、+20とか-100とかをしているところが、まさにHSVの配列を編集しているところになります。
カラー画像であればどんな画像でも動くはずですので、ぜひあなたも適当なカラー画像を準備してこのコードを実行してみましょう。
※実行ファイルと同じフォルダにsample.jpgとして保存しておく必要はあります。
なお、今回はH,S,Vのそれぞれの面に一律数値を足し引きするだけでしたが、numpyのwhereスキルとかを使えばもっと複雑な処理が可能になります。
気になる方は以下の記事も読んでみましょう。
【python-numpy】条件に応じて配列の数値を変換!np.whereの解説
おわりに
というわけで今回はpython-openCVをつかって、HSV配列の編集をやってみました。
ぜひあなたも自分なりにアレンジしてみましょう。
その過程でたくさんのスキルを習得できるはずです。
このように、私のブログでは様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント