【python-openCV】HSV色空間を加工して画像の色味を変えてみる

 

 

こんにちは、ヒガシです。

前回の記事に引き続き、HSV関連のことを書いていきます。

 

 

前回の記事をまだ読んでいない方は、そちらもあわせてご覧ください。

 

というわけで本題です。

この記事では、python-openCVをつかって、

HSV色空間を加工して、画像の色味を変えてみる

という処理を実演してみようと思います。

 

この記事を読むことで、前回紹介したHSV色空間に対する理解を深めるとともに、配列処理の基礎まで学ぶことができるはずです。

 

ぜひ最後までご覧ください。

 

それではやっていきましょう。

※python&openCVのインストール方法から知りたい方はまずは以下からご覧ください。

スポンサーリンク

画像加工の概要説明

この記事では以下の画像のHSV配列を編集して、

HSV配列を変更する際に使用するサンプルコード

以下の3つの画像を生成してみようと思います。

①Hを加工してみた場合

HSV配列のHを変更した際の出力結果

②Sを加工してみた場合

HSV配列のSを変更した際の出力結果

③Vを加工してみた場合

HSV配列の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配列の編集をやってみました。

ぜひあなたも自分なりにアレンジしてみましょう。

 

その過程でたくさんのスキルを習得できるはずです。

 

このように、私のブログでは様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました