Scale float images to 0,1 range on load
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user