Zacznij terazZacznij za darmo

Histogramy

Histogramy pokazują rozkład wartości w obrazie – każdy piksel jest przypisywany do przedziału (ang. bin) na podstawie jego intensywności, a następnie mierzy się liczebność każdego z tych przedziałów.

Pole powierzchni pod histogramem nosi nazwę skumulowanej funkcji rozkładu (ang. cumulative distribution function). Określa ona, jak często w obrazie występuje dany zakres intensywności pikseli.

W tym ćwiczeniu opisz rozkład intensywności w obrazie im: oblicz histogram i skumulowaną funkcję rozkładu, a następnie wyświetl je razem na jednym wykresie.

To ćwiczenie jest częścią kursu

Analiza obrazów biomedycznych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj scipy.ndimage jako ndi.
  • Wygeneruj 256-przedziałowy histogram obrazu im, obejmujący pełny zakres wartości np.uint8.
  • Oblicz skumulowaną funkcję rozkładu dla im. W tym celu najpierw wyznacz skumulowaną sumę hist, a następnie podziel ją przez całkowitą liczbę pikseli w hist.
  • Wykreśl hist i cdf na osobnych wykresach podrzędnych – ten krok został już za ciebie wykonany.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Import SciPy's "ndimage" module
import ____ as ____ 

# Create a histogram, binned at each possible value
hist = ____

# Create a cumulative distribution function
cdf = hist.cumsum() / ____

# Plot the histogram and CDF
fig, axes = plt.subplots(2, 1, sharex=True)
axes[0].plot(hist, label='Histogram')
axes[1].plot(cdf, label='CDF')
format_and_render_plot()
Edytuj i uruchom kod