【OpenCV・Numpy】RGB画像のL1ノルム平均・L1ノルム分散を計算する(Python)

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

どーも、可視化研究室でデータサイエンスを学んでいるゆうき(@engieerblog_Yu)です。

今回は研究の方で、画像のL1ノルム平均とL1ノルム分散を求める機会があったので、そちらの方について簡単に解説していきたいと思います。

ノルム平均とノルム分散とは?

ノルム平均とノルム分散は、画像の輝度値や色の変化を表す統計量です。

  • ノルム平均(L1平均):画像中のすべてのピクセルの値を加算し、その総和を画像のピクセル数で割った値です。
  • ノルム分散(L1分散):画像中のすべてのピクセルの値とノルム平均との差の二乗和を画像のピクセル数で割った値です。

ノルム平均とノルム分散を求めるコード

それではOpenCVとNumpyを求めて実装したコードを紹介します。

import cv2
import numpy as np

# 画像の読み込み
img = cv2.imread('image.jpg')

# ノルム平均を求める
norm_mean = np.sum(img) / img.size

# ノルム分散を求める
norm_var = np.sum((img - norm_mean) ** 2) / img.size

上記のコードでは、NumPyライブラリを使用しています。

img.sizeで画像のピクセル数を取得しています。

また、画像はRGBで読み込まれるため、R,G,Bの3チャンネルの値を含んでいます。

このため、上記のコードでは、R,G,Bの3チャンネルの値を全て加算しています。

終わりに

今回は、画像のノルム平均とノルム分散を求めるPythonコードを紹介しました。

この記事がお役に立てば幸いです。

ゆうき
ゆうき

最後まで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました