Python独習!

習得したPython知識をペイフォワード

PythonでSin波のグラデーション画像を作る

画像処理のテスト用画像として、サイン波状にグラデーションになっている画像が欲しかったので、Pythonで作ってみた。

結果

4周期分のグラデーション画像が得られた。
f:id:greenhornprofessional:20200121235901j:plain

プログラム

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]

/* -----codeの行番号----- */