소스 뷰어
조회수 :   1
import matplotlib.pyplot as plt
import numpy as np

# 3x3 회색조 픽셀값 배열
gray_image = np.array([
    [20, 20, 50],
    [20, 20, 50],
    [120, 120, 150]
])

# 픽셀 값을 1D로 변환
pixel_values = gray_image.flatten()

plt.figure(figsize=(8, 8))
chart_idx = 0

# 1. 회색조 이미지
plt.subplot(2, 2, chart_idx := chart_idx + 1)
plt.imshow(gray_image, cmap="gray", vmin=0, vmax=255)
plt.xticks( np.arange( gray_image.shape[0] ) )
plt.yticks( np.arange( gray_image.shape[0] ) ) 

for i in range(gray_image.shape[0]):
    for j in range(gray_image.shape[1]):
        plt.text(j, i, gray_image[i, j], fontsize=16, ha='center', va='center', color='red')
    pass
pass
#plt.colorbar(label="Pixel Intensity")
plt.title("Data") 

# 2. 기본 히스토그램
plt.subplot(2, 2, chart_idx := chart_idx + 1)
plt.hist(pixel_values, bins=5, color='gray', edgecolor='black', alpha=0.7, align='mid')
plt.title("Histogram")
plt.xlabel("Pixel Intensity")
plt.ylabel("Frequency")
plt.grid(axis='y', linestyle='--', alpha=0.7) 

# 3. 누적 히스토그램
plt.subplot(2, 2, chart_idx := chart_idx + 1)
plt.hist(pixel_values, bins=5, cumulative=True, color='blue', edgecolor='black', alpha=0.7, align='mid')
plt.title("Cumulative Histogram")
plt.xlabel("Pixel Intensity")
plt.ylabel("Cumulative Frequency")
plt.grid(axis='y', linestyle='--', alpha=0.7) 

# 4. 정규화 히스토그램
plt.subplot(2, 2, chart_idx := chart_idx + 1)
plt.hist(pixel_values, bins=5, density=True, color='green', edgecolor='black', alpha=0.7, align='mid')
plt.title("Normalized Histogram")
plt.xlabel("Pixel Intensity")
plt.ylabel("Probability Density")
plt.grid(axis='y', linestyle='--', alpha=0.7)

plt.tight_layout()
plt.show()
No description has been provided for this image