非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Python/OpenCVで単色の画像を生成させる方法(numpy使用)

   

Python/OpenCVでは自分で画像を生成させることができます。

ざっくり言うと、numpyでRGBデータ(例えばホワイトなら255,255,255)を画像サイズ文だけ行列を生成して、それを画像として保存すれば良いわけです。

[ad#top-1]

 

黒の単色画像を生成

numpyではzeros関数でオールゼロの行列を生成できます。その関数を使ってRGB=(0,0,0)のデータを画像サイズ分を生成してあげて、それを画像として保存すれば良いわけです。

import cv2
import numpy as np

#ブランク画像
height = 100
width = 200
blank = np.zeros((height, width, 3))

cv2.imwrite('blank.png',blank)
 

 

ご覧の通り200W×100Hの黒の画像ができました。

 

すべてのデータに255を足して白画像生成

先ほどのソースコードに以下のように255を足すとこで(8行目)、白画像が生成できます。

import cv2
import numpy as np

#ブランク画像
height = 100
width = 200
blank = np.zeros((height, width, 3))
blank += 255 #←全ゼロデータに255を足してホワイトにする

cv2.imwrite('blank.png',blank)
 

 

ご覧の通り200W×100Hの白の画像ができました。

RGB指定で色画像を生成

RGBを指定していろいろな色の画像を生成できます。以下の例は黒データ(オール0)にRGB=(0, 0, 255)を足して青画像にしています。[::-1]はリバースを表しています。OpenCVでの色指定は逆のBGRらしくリバースが必要になるので。

import cv2
import numpy as np

#ブランク画像
height = 100
width = 200
blank = np.zeros((height, width, 3))
blank += [0,0,255][::-1] #RGBで青指定

cv2.imwrite('blank.png',blank)
 

 

ご覧の通り青画像が生成できました。

 

[ad#ad-1]

スポンサーリンク

 - Python