Intensywność
W tym rozdziale będziemy pracować z radiogramem dłoni pochodzącym z konkursu Radiological Society of North America z 2017 roku. Absorpcja promieni rentgenowskich jest najwyższa w gęstych tkankach, takich jak kości, dlatego wynikowe intensywności powinny być wysokie. Obrazy tego rodzaju można wykorzystać do przewidywania „wieku kostnego" u dzieci.
Na początek wczytajmy obraz i sprawdźmy zakres jego intensywności.
Typ danych obrazu określa zakres możliwych wartości intensywności: na przykład 8-bitowe liczby całkowite bez znaku (uint8) mogą przyjmować wartości z zakresu od 0 do 255. Pasek kolorów (colorbar) ułatwia powiązanie tych wartości z wizualizowanym obrazem.
Wszystkie ćwiczenia w tym rozdziale korzystają z następujących importów:
import imageio.v2 as imageio
import numpy as np
import matplotlib.pyplot as plt
To ćwiczenie jest częścią kursu
Analiza obrazów biomedycznych w Pythonie
Instrukcje do ćwiczenia
- Wczytaj obraz "hand-xray.jpg" za pomocą
imageio. - Wyświetl typ danych obrazu (
dtype), minimalną (min()) i maksymalną intensywność (max()). - Zwizualizuj obraz za pomocą
plt.imshow(). Ustaw jawnie minimalne (0) i maksymalne (255) wartości mapy kolorów, korzystając z argumentówvminivmax. - Dodaj pasek kolorów za pomocą
plt.colorbar(), a następnie wyrenderuj wykres, używając niestandardowej funkcjiformat_and_render_plot(). Ten krok został już za ciebie wykonany.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load the hand radiograph
im = ____
print('Data type:', ____)
print('Min. value:', ____)
print('Max value:', ____)
# Plot the grayscale image
____
plt.colorbar()
format_and_render_plot()