図形をランダムに出力し画像ファイル作成
import cv2
import numpy as np
import random
width = 640
height = 480
padding = 40
# np.uint8 8bitの符号なし整数 0~255
img = np.zeros((height, width, 3), np.uint8)
for i in range(10):
x = int(random.uniform(padding, width - padding))
y = int(random.uniform(padding, height - padding))
color1 = int(random.uniform(0, 255))
color2 = int(random.uniform(0, 255))
color3 = int(random.uniform(0, 255))
hankei = int(random.uniform(10, 20))
cv2.circle(img, (x, y), hankei, (color1, color2, color3), -1)
cv2.imshow("random_circle", img)
cv2.imwrite("random_circle.png", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
注記
numpy.zerosとは?
全要素を0で初期化した配列ndarray(多次元配列のデータ構造)を生成したいときは、numpy.zeros()を使う。
numpy.zeros(shape, dtype=float, order=’C’, *, like=None)
Parameters
shape:int or tuple of ints
dtype:data-type, optional
The desired data-type for the array,
e.g., numpy.int8. Default is numpy.float64.
np.uint8:8bitの符号なし整数 0~255
コメント