Update LibXISF, fixes in RawImage

This commit is contained in:
2023-08-28 20:37:11 +02:00
parent 9ffbdcee30
commit f1a2aae9b6
7 changed files with 336 additions and 99 deletions
+23 -10
View File
@@ -52,16 +52,29 @@ void StretchToolbar::stretchImage(Image *img)
{
if(img->rawImage())
{
double median, mad, max;
img->rawImage()->imageStats(nullptr, nullptr, &median, nullptr, &max, &mad, nullptr);
median /= img->rawImage()->norm();
mad /= img->rawImage()->norm();
max /= img->rawImage()->norm();
if(max>1.0f)max = 1.0f;
float bp = median + mad * BLACK_POINT_SIGMA * MAD_TO_SIGMA;
float mid = MTF(median - bp, TARGET_BACKGROUND);
m_stfSlider->setMTFParams(bp, mid, max);
emit paramChanged(m_stfSlider->blackPoint(), m_stfSlider->midPoint(), max);
const RawImage::Stats &stats = img->rawImage()->imageStats();
int ch = img->rawImage()->channels() == 1 ? 1 : 3;
float bp2 = 0;
float mid2 = 0;
float max2 = 0;
for(int i=0; i < ch; i++)
{
double median, mad, max;
median = stats.m_median[i];
mad = stats.m_mad[i];
max = stats.m_max[i];
median /= img->rawImage()->norm();
mad /= img->rawImage()->norm();
max /= img->rawImage()->norm();
if(max>1.0f)max = 1.0f;
float bp = median + mad * BLACK_POINT_SIGMA * MAD_TO_SIGMA;
float mid = MTF(median - bp, TARGET_BACKGROUND);
bp2 += bp;
mid2 += mid;
max2 += max;
}
m_stfSlider->setMTFParams(bp2 / ch, mid2 / ch, max2 / ch);
emit paramChanged(m_stfSlider->blackPoint(), m_stfSlider->midPoint(), m_stfSlider->whitePoint());
}
}
}