CT i DICOM — materiały referencyjne
Materiały referencyjne · Zwarty materiał do sprawdzania informacji. Wróć tutaj później; nie zaczynaj nauki od tej strony. Wersje dydaktyczne znajdują się w rozdziale.
Identyfikatory — tabela podręczna
| Tag | Nazwa | Zakres | Dlaczego ma znaczenie |
|---|---|---|---|
(0010,0020) |
PatientID |
Pacjent | Klucz deidentyfikacyjny lub lokalny klucz ośrodka; służy do grupowania. Ma znaczenie wyłącznie w ramach jednostki nadającej identyfikator. Między ośrodkami należy łączyć z IssuerOfPatientID (0010,0021). |
(0020,000D) |
StudyInstanceUID |
Badanie | „To badanie” |
(0020,000E) |
SeriesInstanceUID |
Seria | „Ta akwizycja lub rekonstrukcja” — jednostka pracy przy budowaniu wolumenu |
(0008,0018) |
SOPInstanceUID |
Instancja | „Ta warstwa” — klucz łączenia używany przez SEG do wskazania obrazów źródłowych |
(0020,0052) |
FrameOfReferenceUID |
Układ przestrzenny | Identyfikuje układ współrzędnych pacjenta. Ta sama wartość tego identyfikatora pozwala porównać geometrię, ale nie dowodzi identyczności siatek. |
(0008,0016) |
SOPClassUID |
Typ obiektu | Określa rodzaj obiektu przed rozpoczęciem jego analizy |
(0008,0060) |
Modality |
Typ obiektu | CT, SEG, MR, OT, … — filtr oparty na jednym tagu |
Tagi intensywności i pikseli
| Tag | Nazwa | Zastosowanie |
|---|---|---|
(0028,1052) |
RescaleIntercept |
Wyraz wolny Modality LUT; HU = stored × slope + intercept |
(0028,1053) |
RescaleSlope |
Współczynnik nachylenia Modality LUT, często 1 |
(0028,0100) |
BitsAllocated |
zazwyczaj 16 |
(0028,0103) |
PixelRepresentation |
0 = bez znaku, 1 = ze znakiem |
(7FE0,0010) |
PixelData |
surowy bufor pikseli, dane masowe OW/OB |
(0018,1210) |
ConvolutionKernel |
kernel rekonstrukcji, zmienna wpływająca na teksturę |
Tagi geometrii — pełne omówienie w rozdziale 4
| Tag | Nazwa | Zastosowanie |
|---|---|---|
(0020,0032) |
ImagePositionPatient |
współrzędne (x,y,z) środka lewego górnego woksela, mm w układzie LPS |
(0020,0037) |
ImageOrientationPatient |
cosinusy kierunkowe wiersza i kolumny |
(0028,0030) |
PixelSpacing |
[row spacing, column spacing] |
(0018,0050) |
SliceThickness |
grubość skolimowanej lub obrazowanej warstwy |
(0018,0088) |
SpacingBetweenSlices |
odległość między środkami warstw |
Klasy SOP, z którymi będziesz pracować
1.2.840.10008.5.1.4.1.1.2— CT Image Storage (pojedyncza warstwa CT).1.2.840.10008.5.1.4.1.1.66.4— Segmentation Storage (DICOM SEG).1.2.840.10008.5.1.4.1.1.481.3— RT Structure Set Storage (RTSTRUCT).
Value Representation (VR) — zakres potrzebny w praktyce
Każdy element danych ma dwuliterowy kod typu. Nie musisz znać całej tabeli; wystarczą trzy fakty:
- Wartości liczbowe są często zapisywane jako tekst (
DS, decimal string), dlatego zapis"0.78125\0.78125"jest normalnym sposobem przechowywania odstępów między pikselami. - UID (
UI) są łańcuchami znaków rozdzielonymi kropkami. Porównuj je jako łańcuchy znaków. - Pixel Data to dane masowe (
OW/OB) zapisane w(7FE0,0010).
Typowe VR: PN (person name), DA (date), UI (UID), US (unsigned short),
DS (decimal string), OB/OW (other byte/word).
Transfer Syntax
TransferSyntaxUID (0002,0010) określa kodowanie Pixel Data na poziomie
bajtów: bez kompresji (np. Explicit VR Little Endian 1.2.840.10008.1.2.1),
stratne JPEG, JPEG-2000 itd. pydicom dekoduje większość z tych formatów. Jeśli
kiedykolwiek odczytasz surowe bajty PixelData, najpierw musisz znać składnię
transferową.
Klasyczny CT a Enhanced CT
Model „jedna instancja = jedna warstwa” dotyczy klasycznego jednoklatkowego obiektu CT Image Storage. Enhanced CT jest obiektem wieloklatkowym, w którym jedna SOP Instance zawiera wiele klatek, a każdą z nich opisują odrębne makra grup funkcjonalnych. Ten sam mechanizm wykorzystuje DICOM SEG. Pojęcia geometryczne są identyczne, zmienia się tylko sposób zapakowania danych.
Co zwykle idzie źle
- Traktowanie zapisanych pikseli jak HU bez zastosowania współczynnika nachylenia i wyrazu wolnego: najczęstszy cichy błąd.
- Zakładanie, że wszędzie występuje
uint16: odczytujPixelRepresentationiBitsAllocated. - Ufanie
InstanceNumberlub kolejności nazw plików przy ustalaniu porządku anatomicznego w osi z. Ustalaj kolejność na podstawie geometrii opisanej w rozdziale 4. - Łączenie rekonstrukcji: badanie zawiera kilka serii, takich jak cienkie i
grube warstwy osiowe, reformaty koronalne oraz obraz lokalizacyjny. Obraz
lokalizacyjny (localizer/scout) jest dwuwymiarowym obrazem do planowania, a
nie warstwą osiową; włączenie go do stosu prowadzi do utworzenia niepoprawnego
wolumenu. Filtruj według
ImageType/ConvolutionKernel/SliceThickness. - Ignorowanie składni transferowej podczas odczytu surowych bajtów: wynikiem
są bezwartościowe dane lub błąd dekompresji. Pozwól, aby obsłużył ją
pydicom; przy skompresowanych składniach sprawdź, czy nie brakuje pakietu.
Praktyczna kolejność lektury — wybrane źródła zewnętrzne
Nie czytaj całego standardu DICOM. Zapoznaj się z poniższymi źródłami w podanej kolejności i zakończ, gdy opisany wyżej model nabierze konkretnego znaczenia:
- “DICOM is Easy” (Ronnie) —
dicomiseasy.blogspot.com. Kanoniczne, przystępne wprowadzenie, które buduje intuicję hierarchiiPatient→Study→Series→Instancena podstawie rzeczywistej instancji CT, tag po tagu. Pomiń wpisy o komunikacji sieciowej, której dotyczy rozdział 10. - Dokumentacja pydicom —
pydicom.github.io. Sekcje “Dataset basics” i “elements” oraz samouczek Pixel Data obejmują około 90% potrzebnej wiedzy:dcmread,ds.pixel_array,RescaleSlope/Intercept. Pomiń tworzenie nowych instancji SOP. - Innolitics DICOM Standard Browser —
dicom.innolitics.com. Używaj jako materiału referencyjnego, a nie podręcznika; miej go zawsze pod ręką. - The DICOM standard (źródło normatywne) —
dicom.nema.org/standard.html. Czytaj w miarę potrzeb: PS3.3 Image Plane Module / Image Pixel Module / Modality LUT. Pomiń PS3.4/5/7/8 (usługi, kodowanie i komunikacja sieciowa) aż do materiału o informatyce obrazowej.
Powiązanie z TRACE-CT
Każde pojęcie z tego rozdziału jest stosowane w rzeczywistym kodzie TRACE-CT. Czytaj go, ale nie kopiuj tutaj: przeliczanie na HU, grupowanie serii i metadane, wybór rekonstrukcji, ograniczanie HU przed obliczaniem cech oraz filtrowanie obrazów lokalizacyjnych z walidacją geometrii. Konkretne skrypty i funkcje są zinwentaryzowane w mapie nauki TRACE-CT.
Dalsze zgłębianie tematu
- Hasła Innolitics dotyczące Rescale Slope/Intercept, Image Plane Module i Image Pixel Module.
- Moduły DICOM PS3.3 Image Plane / Image Pixel / Modality LUT: normatywne źródło semantyki geometrii oraz współczynnika nachylenia i wyrazu wolnego.
- Dokumentacja PyRadiomics dotycząca typu obrazu i
binWidth: dlaczego przed ekstrakcją cech trzeba pracować w HU, a nie na pikselach zapisanych w pliku (rozdział 5). - Bushberg, Essential Physics of Medical Imaging: pogłębione informacje o rekonstrukcji CT i dawce, gdy sposób rekonstrukcji lub dawka staną się aktywną zmienną w TRACE-CT.
Co zapamiętać — podsumowanie rozdziału
- CT mierzy projekcje i rekonstruuje warstwy. Zapisany piksel jest wynikiem działania algorytmu, a nie surowym pomiarem fizycznym.
HU = stored_pixel × RescaleSlope + RescaleIntercept. Nigdy nie używaj zapisanych pikseli bezpośrednio jako HU.Patient → Study → Series → Instance; geometria i rekonstrukcja należą do poziomu Series.- Hierarchia organizuje dane, ale nie definiuje geometrii wolumenu. Do tego potrzebne są IOP/IPP i odstępy dla każdej instancji, co omawia rozdział 4.
- Kernel rekonstrukcji i grubość warstwy są zmiennymi ilościowymi: dwie rekonstrukcje jednego skanu to różne obrazy, które mogą dawać różne cechy.
© 2026 Adrian Tkacz · BioMedical-IT
Oryginalne teksty i ilustracje są udostępniane na licencji Creative Commons Uznanie autorstwa–Użycie niekomercyjne 4.0 Międzynarodowe (CC BY-NC 4.0), o ile nie zaznaczono inaczej. Przy ponownym wykorzystaniu proszę podać Adrian Tkacz / BioMedical-IT jako autora i zamieścić odnośnik do oryginalnego źródła. Materiały osób trzecich zachowują własne prawa i warunki licencyjne.