[OpenCV] 超シンプルなコードでグラデーション画像を作成する

2021年11月1日月曜日

OpenCV Python

t f B! P L

OpenCV + Python で、グラデーション画像を作成する方法を紹介します。

今回は、とにかくシンプルなコードを目指します。たぶんネットで検索して出てくるサンプルコード中で最も、コードの行数が少ないのでは?と思ってます。

サンプルコード

縦方向の線形グラデーション

以下は、縦方向への線形グラデーション画像を作成するサンプルコードです。

import cv2
import numpy as np
 
height = 200	#縦
width = 300		#横
img = np.zeros((height, width, 3), np.uint8)

#青色のグラデーションの作成
for h in range(0, height):
  color = int(255 * (height - h) / height)
  img[h, :] = [255, color, color]

cv2.imwrite('color_img.jpg', img)

実行すると、以下のような画像が作成されます。

縦方向の線形グラデーション1

グラデーションの向きを反転させる場合は、次のように書きます。

for h in range(0, height):
  color = int(255 * h / height)
  img[h, :] = [255, color, color]

↓実行結果

縦方向の線形グラデーション2

横方向の線形グラデーション

今後は、横方向の線形グラデーションを作成してみます。
基本は縦向きのグラデーションと同じで、横方向に徐々に色を変化させていきます。

import cv2
import numpy as np
 
height = 200	#縦
width = 300		#横
img = np.zeros((height, width, 3), np.uint8)

#青色のグラデーションの作成
for w in range(0, width):
  color = int(255 * (width - w) / width)
  img[:, w] = [255, color, color]

cv2.imwrite('color_img.jpg', img)

実行すると、以下のような画像が作成されます。うん、横向きですね!

横方向の線形グラデーション1

グラデーションの向きを反転させる場合は、次のように書きます。

for w in range(0, width):
  color = int(255 * w / width)
  img[:, w] = [255, color, color]

↓実行結果

横方向の線形グラデーション2

スポンサーリンク

QooQ