Pokazywanie postów oznaczonych etykietą dicom. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą dicom. Pokaż wszystkie posty

piątek, 23 lipca 2010

Zbiory ogólnodostępnych obrazów medycznych

0 komentarze
Trudno zajmować się przetwarzaniem obrazów medycznych, nie mając dostępu do takich danych. Najlepiej oczywiście mieć stalą współpracę z dużym szpitalem, który ma dobrze zorganizowany zakład radiologiczny lub też mieć znajomego lekarza, który z chęcią podzieli się takimi obrazami i dodatkowo wskaże problem badawczy. Jeśli jednak nie mamy tego szczęścia, to nic straconego, ponieważ zawsze można skorzystać z publicznie dostępnych zbiorów w Internecie. Do ich poszukiwania skłoniła mnie potrzeba lepszego przetestowania algorytmu nad którym ostatnio pracowałem, a do tej pory miałem do dyspozycji jedynie kilkanaście obrazów.

Poniższa lista nie zawiera opisu baz danych - tego jak i przez kogo zostały organizowane. Zawiera jedynie praktyczne wskazówki odnośnie możliwości dostępu do tych danych i ich wykorzystania we własnej pracy (ograniczenia licencyjne). Pozostałe informacje można znaleźć nie tylko na wskazanych stronach, ale również przy poszczególnych obrazach (jak i gdzie zostały zrobione).
  • Casimage - jedna z najstarszych baz danych, liczy ok. 10 000 obrazów. Sprawia wrażenie już nie rozwijanej (linki do strony organizatorów nie działają). Brak jednego archiwum danych. Dostęp jest możliwy przez interfejs WWW. Obrazy można pobierać indywidualnie. Na szczęście obrazy umieszczone są na serwerze począwszy od pliku 0 do 9735. Dzięki temu można szybko pobrać je korzystając z przygotowanego przeze mnie skryptu [linux, wget]:

    for i in $(seq 9735); do wget "http://pubimage.hcuge.ch/4DCGI/FULLIMAGE/$i"; echo $i; done
    Niestety nie wszystkie pliki chcą się od razu pobrać, dlatego polecam kilkukrotne uruchomienie nieznacznie zmodyfikowanej wersji poprzedniego skryptu:

    #!/bin/bash
    for i in $(seq 9735)
    do
      if [ ! -f $i ]
      then
        wget "http://pubimage.hcuge.ch/4DCGI/FULLIMAGE/$i";
        echo $i;
      fi
    done
  • RSNA - zbiór baz danych zorganizowanych przez Stowarzyszenie Radiologów Ameryki Północnej. Dostęp do wielu medycznych baz danych za pomocą interfejsu WWW.
  • MyPacs - prawdopodobnie największy (ok. 120 000) publicznie dostępny zbiór obrazów medycznych. Dostęp przez interfejs Flash, bez możliwości pobierania danych. Możliwość taka jest po przełączeniu się do uproszczonego trybu html.
  • MedGift - demo systemu wyszukiwania obrazów MedGift, który bazuje na innym systemie, a mianowicie: Gift. Dane pochodzą prawdopodobnie z bazy Casimage. Zaletą tego systemu jest możliwość szybkiego stworzenia zbioru podobnych obrazów, co w przypadku pozostałych baz trzeba zrobić samemu (lub można skorzystać z zaproponowanego podziału na kategorie).
  • MedPix - druga co do wielkości baza obrazów. Dostępny interfejs WWW utrudnia pobieranie obrazów (zablokowany prawy przycisk myszy). Można się jednak do nich dostać przez Google Images (link do wyszukiwania). Niestety obrazki mają dodane wizualne adnotacje, co jeszcze bardziej utrudnia swobodne ich przetwarzanie.
  • IRMA - zbiór ok. 15 000 obrazów podzielonych na ok. 200 kategorii. Dostęp do archiwum z plikami możliwy jest po podpisaniu warunków użycia (do zastosowań naukowych, nie komercyjnych, bez możliwości udostępniania pełnego zbioru dalej) i przefaksowaniu na podany adres.
  • ImageCLEF - ok 80 000 obrazów, dostępnych prawdopodobnie w postacie jednego lub kilku archiwów. Obrazy pochodzą m.in. z bazy IRMA, Casimage. Warunki użycia są podobne jak w przypadku bazy IRMA, tylko muszą one zostać podpisane przez osobę na stanowisku kierowniczym w jednostce naukowej.
  • Midas - baza danych pod patronatem firmy Kitware, która patronuje m.in. VTK i Insight Toolkit. Związana z elektronicznym czasopismem naukowym Insight Journal. Obrazy dostępne przez interfejs WWW najczęściej w formatach źródłowych: DICOM lub binarnym.
  • Springer Images - obrazy dołączone do publikacji Springer. Każdy obraz ma indywidualną licencję jednak w trakcie wyszukiwania można wybrać grupę licencji otwartych.
  • Images from the History of Medicine (NLM) - obrazy związane z historią medycyny zebrane przez National Library of Medicine USA.
Poza wyżej wymienionymi bazami danych warto jeszcze zajrzeć na spis plików opracowany na stronie biblioteki GDCM (link) oraz programu OsiriX (link).

Mam nadzieje, że przedstawione przeze mnie bazy obrazów medycznych pozwolą czytelnikowi na znalezienie ciekawego materiału badawczego i zaowocują powstaniem ciekawych prac naukowych. Powodzenia.

poniedziałek, 26 stycznia 2009

Komponenty DICOMowe dla Qt

0 komentarze
Już jakiś czas temu zastanawiałem się jak z poziomu Qt odczytywać i wyświetlać obrazy medyczne. Oczywiście nie ma sensu samemu implementować obsługi DICOMa, tylko najlepiej skorzystać z gotowej biblioteki, która dysponuje już taką funkcjonalnością.

Kilka dni temu odpytując ponownie Googla jak sobie poradzić z tym problemem, natrafiłem na gotowe rozwiązanie. Na SourceForge powstał projekt Qt4 Dicom Widget set, będący zbiorem komponentów dla Qt. Składa się on z następujących części:
  • QdicomDirListWidget - pokazuje informacje o pacjentach zawarte w DICOMDIR
  • QdicomIconListWidget - wyświetla miniaturki wszystkich zdjęć z wczytanego zbioru
  • QdicomImageWidget - pozwala wyświetlać zarówno pojedyncze obrazy, jak i obrazy zapisane w postaci serii plików (tryb video)
Po skompilowaniu i zainstalowaniu komponentów można z nich korzystać z poziomu QtDesigner.

Poniżej przykład możliwości omawianych komponentów. Można go znaleźć w katalogu qdcws-1.0.1/designer.

wtorek, 12 sierpnia 2008

Biblioteki do obsługi formatu DICOM

0 komentarze
Kolejna analiza narzędzi, którą się zająłem, dotyczyła bibliotek służących do obsługi formatu DICOM. Podobnie jak w poprzednich wpisach, główny nacisk został położony na technologie mogące być interesujące z punktu widzenia programisty lub osoby zajmującej się analizą obrazu, a nie użytkownika końcowego. Osoby zainteresowane gotowymi programami, a nie ich tworzeniem odsyłam do internetowej bazy oprogramowania IDoImaging.com, poświęconej diagnostyce obrazowej, w której znajduje się lista ok. 80 przeglądarek DICOM, dostępnych w znaczniej mierze nieodpłatnie.

Większość osób, z którymi rozmawiam na temat analizy obrazu, przetwarza zdjęcia medyczne po ich uprzednim przekonwertowaniu z formatu DICOM do jednego z bardziej popularnych formatów, takich jak BMP, JPEG, TIFF. Jest to związane z jednej z strony z nabytymi przyzwyczajeniami do reprezentacji obrazu w skali szarości w zakresie od 0 do 255 (w DICOM często mamy inną skalę), a z drugiej strony z faktem, że dostępne oprogramowanie nie zawsze wspiera format DICOM. Jednakże, jeśli sami tworzymy algorytmy 'od zera' implementując je np. w C++ lub zastanawiamy się nad tworzeniem bardziej złożonego oprogramowania, warto wprowadzić natywną obsługę formatu DICOM. Przyniesie nam to wiele korzyści, m.in.:
  • dostęp do pełnej informacji obrazowych
  • dostęp do opisu zdjęcia w tym samym pliku
  • przyspieszenie obliczeń (pomijamy etap konwersji)
Oczywiście sami nie musimy implementować funkcji obsługujących DICOM - wystarczy, że skorzystamy z jednej z gotowych bibliotek programistycznych, która już taką obsługę oferuje.

Poniżej, chciałbym przedstawić cztery biblioteki, które mogą zainteresować czytelnika. Trudno mi wskazać, która z nich jest bezwzględnie najlepsza, ponieważ każda z nich sprawdza się lepiej od innych w zastosowaniach, do których została przygotowana.

DCMTK (DICOM Toolkit)
  • najbardziej kompleksowa biblioteka ze wszystkich opisywanych; implementuje największą cześć standardu DICOM
  • poza biblioteką programistyczną, cześć funkcjonalności jest gotowa od razu do użycia dzięki przygotowanym programom konsolowym
  • wykorzystywana przez takie programy jak: OsiriX, Medical Studio
  • kompilacja z użyciem CMake
  • licencja BSD
  • strona WWW
GDCM (Grass roots DiCoM)
  • dobra obsługa standardu DICOM
  • biblioteka 'lżejsza' od DCMTK
  • w odróżnieniu do DCMTK brakuje obsługi DICOM network file exchange protocol i DICOM media storage formats (więcej informacji)
  • podobnie jak w DCMTK dostępna jest grupa narzędzi konsolowych
  • jest ona domyślnie wbudowana w ITK oraz VTK
  • przygotowany interfejs (ang. wrapping) dla Pythona
  • kompilacja z użyciem CMake
  • licencja BSD
  • strona WWW
(X)MedCon
  • biblioteka C++, oraz przeglądarka DICOM
  • dobra integracja z biblioteką GTK+
  • jest wykorzystywana przez CImg do obsługi DICOM
  • licencja LGPL
  • strona WWW
OpenDicom.Net
  • biblioteka C# - została uwzględniona w analizie, ponieważ jest tworzona z wykorzystaniem Mono, co czyni ją niezależną od systemu operacyjnego
  • oferuje również przeglądarkę DICOM oraz zestaw narzędzi konsolowych
  • strona WWW
Podsumowując przedstawione powyżej narzędzia, można zauważyć, że ich stopień złożoności jest różny, przez co ich wykorzystanie również może być inne. Z biblioteką GDCM warto bliżej się zapoznać, jeśli korzystamy lub planujemy korzystać z tandemu VTK - ITK. Tworząc bardziej zaawansowane aplikacje, które będą łączyć sie z serwerami PACS, najlepszym rozwiązaniem będzie skorzystanie z DCMTK. Osoby, które nie tworzą aplikacji pod klienta, a jedynie projektują algorytmy, powinny być zadowolone z możliwości MedCon, szczególnie po jej połączeniu z CImg. OpenDicom.Net będzie najlepszym wyborem dla programistów platformy .NET, którzy nie chcą uzależniać swoich aplikacji od systemu Windows.

Co ważne, wszystkie opisywane powyżej biblioteki, ze względu na swoje licencje (BSD, LGPL) mogą być wykorzystywane w aplikacjach komercyjnych.