無地の画像を作成 - OpenCV、Python徹底解説

 

{{DZ_TITLE}}
OpenCVで簡単に画像を新規作成する方法

基本形

# カラー
img = np.zeros((height, width, 3), np.uint8))

# グレースケール
img = np.zeros((height, width), np.uint8))

# カラー塗りつぶし
img = np.zeros((height, width, 3), np.uint8))
img += [r, g, b][::-1] # rgbは0~255

# グレースケール 塗りつぶし
img = np.zeros((height, width), np.uint8))
img += a # aは輝度、0~255

サンプル

カラー画像作成

import cv2
import numpy as np

height = 720
width = 1280
img = np.zeros((height, width, 3), np.uint8))
img += [255,0,0][::-1] # 赤

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

グレースケール画像作成

import cv2
import numpy as np

height = 720
width = 1280
img = np.zeros((height, width), np.uint8))
img += 100 # 灰色

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

解説

OpenCVの画像はnumpyのarrayで定義されています。
typeはuint8(0~255)で定義されます。
np.zeros((height, width,np.uint8)の
,np.uint8を除いてもimwrite等の関数では正常に動作しますが、
VideoWriter等で動画作成時に乱れるので要注意。
OpenCVで動画作成 VideoWriter を参照の事。

関連

Python - OpenCV徹底解説
画像 切り出し、トリミング

おすすめ記事

Pythonでweb serverを立ち上げる(一時作業用)
Pythonでweb serverを立ち上げる(一時作業用)
賞金 $55,000、OSIC肺線維症の進行 確認プログラム コンペティション
賞金 $55,000、OSIC肺線維症の進行 確認プログラム コンペティション
全くの初心者がnetlifyとX Domain(X Server)でサーバーを独自ドメイン化した話
全くの初心者がnetlifyとX Domain(X Server)でサーバーを独自ドメイン化した話
geojsonをfoliumで綺麗な地図を作る
geojsonをfoliumで綺麗な地図を作る
read_csvでCSV,TSVファイルを読み込む / Python Pandas
read_csvでCSV,TSVファイルを読み込む / Python Pandas
Linux ( raspberry pi ) USBを文字化けなくmountする(自動も対応)
Linux ( raspberry pi ) USBを文字化けなくmountする(自動も対応)
Supponsered

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Comments

comments powered by Disqus