Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像をセピア色に変換する(グレースケール画像を赤く補正する)

画像をセピア色に変換します。
セピア色への変換にはいくつか手法がありますが、ここではカラー画像をグレースケール変換しその輝度を元に下の式のように赤を強く青を弱く補正します。
B(青):グレースケールの輝度 × 145
G(緑):グレースケールの輝度 × 200
R(赤):グレースケールの輝度 × 240

関連記事

画像をセピア調にする

環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'kyoto.jpg'で保存しました。
f:id:T_A_T:20201218104125j:plain

コード
import cv2
import numpy as np

img = cv2.imread('kyoto.jpg',0)  # 画像をグレースケール読み出し
height, width = img.shape  # サイズ取得
sepia = np.zeros((height, width, 3), np.uint8)  # セピア画像用ndarray作成

# セピア変換
for y in range(height):
    for x in range(width):
        sepia[y,x,0] = img[y,x]/255*145     
        sepia[y,x,1] = img[y,x]/255*200     
        sepia[y,x,2] = img[y,x]/255*240     

cv2.imwrite('sepia.jpg', sepia)

実行結果

f:id:T_A_T:20201218104309j:plain

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村