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]
スポンサーリンク