"""輝度マップ・ヒストグラム生成モジュール."""
from pathlib import Path
import matplotlib.pyplot as plt
import numpy
def plot_luminance_map(luminance: numpy.ndarray, output_path: str) -> None:
"""輝度画像をヒートマップとして保存する.
Args:
luminance: 輝度画像の NumPy 配列(H x W, float64).
output_path: 出力先ファイルパス(PNG).
"""
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
fig, ax = plt.subplots(figsize=(8, 6))
im = ax.imshow(luminance, cmap="hot", interpolation="nearest")
fig.colorbar(im, ax=ax, label="Luminance")
ax.set_title("Luminance Map")
ax.set_xlabel("X (px)")
ax.set_ylabel("Y (px)")
fig.tight_layout()
fig.savefig(output_path, dpi=150)
plt.close(fig)
print(f"輝度マップを保存しました: {output_path}")
def plot_histogram(luminance: numpy.ndarray, output_path: str) -> None:
"""輝度ヒストグラムを生成して保存する.
Args:
luminance: 輝度画像の NumPy 配列(H x W, float64).
output_path: 出力先ファイルパス(PNG).
"""
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
fig, ax = plt.subplots(figsize=(8, 5))
ax.hist(
luminance.ravel(), bins=256, range=(0, 255), color="steelblue", edgecolor="none"
)
ax.set_title("Luminance Histogram")
ax.set_xlabel("Luminance")
ax.set_ylabel("Pixel Count")
fig.tight_layout()
fig.savefig(output_path, dpi=150)
plt.close(fig)
print(f"輝度ヒストグラムを保存しました: {output_path}")