pythonで図形をランダムに出力し画像ファイル作成

図形をランダムに出力し画像ファイル作成

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

コメント

タイトルとURLをコピーしました