pythonで様々な様々な線を描画した画像を生成したい
解決したいこと
参考画像のような画像を、pythonで生成したいのですが、ライブラリや使い方など、アドバイスいただけると幸いです。
ちなみに、以下のような条件で考えております。
- 線の角度は0から180度まで任意の角度を指定したい
- 同じ角度でも、ノイズのパターンを変更し、5枚程度生成したい。
- shape:128, 128
パーリンノイズをベースにした方法などもありましたが、以下のようにパーリンノイズのベース画像生成まではできましたが、その先どのように加工すれば良いかわからず止まっております。。。。
全然別の手法で問題ないので、最初に貼っている画像のようなものを生成したいです。
どなたか、お力を貸していただけると幸いです。
よろしくお願いします。
import cv2
import numpy as np
from perlin_noise import PerlinNoise
# parameters
height, width = 128, 128
num_nodes = np.random.randint(2, 49) #nodes
num_base_images = 30 # base_images_count
num_rotate_images = 10 # rotated images
sigma = 1.5
# Perlin noise生成
noise = PerlinNoise(octaves=num_nodes, seed=1)
# Image generation of vertical patterns
stripe_images = []
for _ in range(np.random.randint(3, 6)):
stripe = np.zeros((height, width), dtype=np.float32)
for i in range(height):
for j in range(width):
i_hei = i / height
j_wid = j / width
stripe[i, j] = noise([i_hei, j_wid])###
stripe = cv2.normalize(stripe, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)
stripe_images.append(stripe)
plt.imshow(stripe_images[0], cmap='gray')
plt.title('base_images')
plt.show()
0