画像のフィルタ処理のプログラミングをしていて、テストデータとして市松模様のような画像が欲しい場面があります。
調べたところnumpyのtile()で作成することが出来るようなので試してみたいと思います。
import cv2
import numpy as np
# tile()を使った繰り返し
# 黒、白
# 白、黒
pattern = np.array([[0,255],[255,0]],dtype=np.uint8)
# 画像作成
img = np.tile(pattern, (64, 64))
# 結果表示
cv2.namedWindow("tile()", cv2.WINDOW_NORMAL)
cv2.imshow('tile()', img)
cv2.waitKey()
実行するとぱっと見た感じ灰色で塗りつぶされた感じになります。
ウィンドウサイズを変更して拡大すると、白黒のドットが並べられていることが確認できました。
import cv2
import numpy as np
# tile()を使った繰り返しと文字の描画
# パターン
pattern = np.array([[255,127,0],[0,255,127],[127,0,255]],dtype=np.uint8)
# 画像作成
img = np.tile(pattern, (600//3, 800//3))
# 文字の書き込み(黒)
cv2.putText(img, "OpneCV", (160, 320), cv2.FONT_HERSHEY_SIMPLEX, 4.0, (0,0,0), 8)
# 文字の書き込み(白)
cv2.putText(img, "OpneCV", (156, 316), cv2.FONT_HERSHEY_SIMPLEX, 4.0, (255,255,255), 8)
# 結果表示
#cv2.namedWindow("tile()", cv2.WINDOW_NORMAL)
cv2.imshow('tile()', img)
cv2.waitKey()
コメント