PythonでSin波のグラデーション画像を作る
画像処理のテスト用画像として、サイン波状にグラデーションになっている画像が欲しかったので、Pythonで作ってみた。
結果
4周期分のグラデーション画像が得られた。
プログラム
python3.8.1
from matplotlib import pylab as plt import numpy as np import cv2 pix = 512 #画像のサイズ img = np.zeros((pix,pix,1),np.uint8) #512行1列の2次元配列を512個、という3次元配列。画素値は8bit。カラー24bitにするときは1→3に。 x = np.arange(pix) #0~511までのX軸を作成 f = 100 * np.sin(2 * np.pi * 5 * x / pix) + 150 #5周期分のサイン波を作成。振幅(画素値)は適当に。 #デバッグ用 #print(f.max()) #print(f.min()) #サイン波をimgに代入する for i in range(pix): for j in range(pix): img[j][i] = f[i] #デバッグ用 #plt.plot(x, f) #plt.show() #imgを画像として保存 cv2.imwrite('SinWave_512_512_1.jpg', img)
[08_SinWave512pix_002.py]