Update LibXISF, fixes in RawImage
This commit is contained in:
+23
-10
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user