Prawidłowa logika przetwarzania pikseli dla DICOM JPEG (RGB) do stosowania szerokości okna i filtra poziomu

Próbuję zastosować filtr szerokości i poziomu wdowy do obrazu JPEG, który wyodrębniłem z pliku DICOM.

Oto logika, której używam do przetwarzania każdego kanału RGB. Przykład na przykład. Manipuluję czerwonym kanałem. Jak poniżej kod w skrypcie renderowania na Androida

Przykładowy kod, w którym pokazałem, jak manipuluję Czerwonym Kanałem Obrazu. (Robię to samo dla zielonych i niebieskich kanałów)

Manipuluje szerokością i poziomem wdowy obrazu JPEG, ale nie ma pewności, czy jest to właściwy sposób manipulowania JPEG DICOM, jeśli jakiś organ zna prawidłowy sposób manipulowania szerokością i poziomem okna RGB JPEGS z poprawną matematyką przetwarzania pikseli. %) różni się od DicomViewers opartych na Windows (wiem, że poziom i szerokość okna są tylko dla obrazów monochromatycznych, ale niektóre DicomViewers, takie jak „ShowCase”, stosują takie filtry w RGB)

    displayMin = (windowLevel- windowWidth/2);
    displayMax = (windowLevel+ windowWidth/2);

    /*Manipulate Red Channel */
    if(current.r < displayMin)
    {
      current.r = 0;
    }
    else if(current.r > displayMax)
    {
       current.r = 1;
    } 

questionAnswers(1)

yourAnswerToTheQuestion