Scale float images to 0,1 range on load

This commit is contained in:
2022-07-22 11:36:10 +02:00
parent 93b56e2966
commit 39775b5e98
2 changed files with 17 additions and 0 deletions
+16
View File
@@ -67,6 +67,7 @@ RawImage::RawImage(cv::Mat &img)
{
m_img = img;
m_stats = false;
scaleToUnit();
}
RawImage::RawImage(const RawImage &d)
@@ -378,3 +379,18 @@ bool RawImage::pixel(int x, int y, QVector3D &rgb) const
}
return true;
}
void RawImage::scaleToUnit()
{
if(CV_MAT_DEPTH(m_img.type()) == CV_32F)
{
double min, max;
cv::minMaxIdx(m_img, &min, &max);
if(min < 0 || max > 1)
{
float scale = 1.0 / (max - min);
float zero = min * scale;
m_img = m_img * scale - zero;
}
}
}