pythonでnumpyのtile()を使ってタイル状に画像を並べる

python コンピュータ
python

画像のフィルタ処理のプログラミングをしていて、テストデータとして市松模様のような画像が欲しい場面があります。
調べたところ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()

コメント