Hola
Seguramente porque estás utilizando ScreenTransferFunction (STF). STF no cambia los píxeles de la imagen; solo cambia la representación en pantalla. De esta forma, lo que guardas es la imagen lineal, que es muy oscura. Tienes que aplicar el ajuste de histograma con HistogramTransformation. Así modificarás la imagen y se guardará como tú esperas. A ver si esto soluciona tu problema.