Kaynağa Gözat

Improve window/level computation in dicom image

Steve Pieper 13 yıl önce
ebeveyn
işleme
a3a46f7145
1 değiştirilmiş dosya ile 11 ekleme ve 2 silme
  1. 11 2
      Libs/DICOM/Widgets/ctkDICOMImage.cpp

+ 11 - 2
Libs/DICOM/Widgets/ctkDICOMImage.cpp

@@ -69,9 +69,18 @@ ctkDICOMImage::ctkDICOMImage(DicomImage* dicomImage, QObject* parentValue)
   Q_D(ctkDICOMImage);
   d->DicomImage = dicomImage;
   if (d->DicomImage)
+    // Select first window defined in image. If none, compute min/max window as best guess.
+    // Only relevant for monochrome.
+    if (d->DicomImage->isMonochrome())
     {
-    // select first window by default
-    d->DicomImage->setWindow(0);
+        if (d->DicomImage->getWindowCount() > 0)
+        {
+          d->DicomImage->setWindow(0);
+        }
+        else
+        {
+          d->DicomImage->setMinMaxWindow(OFTrue /* ignore extreme values */);
+        }
     }
 }