GUI: Fixed black zed depth image in ImageView (#356)

This commit is contained in:
matlabbe
2019-01-28 19:47:01 -05:00
parent f8b7421b59
commit 5eb9bbe283

View File

@@ -90,27 +90,26 @@ inline QImage uCvMat2QImage(const cv::Mat & image, bool isBgr = true, uCvQtDepth
float min=data[0], max=data[0]; float min=data[0], max=data[0];
for(unsigned int i=1; i<image.total(); ++i) for(unsigned int i=1; i<image.total(); ++i)
{ {
if(!uIsNan(data[i]) && data[i] > 0) if(uIsFinite(data[i]) && data[i] > 0)
{ {
if((uIsNan(min) && data[i] > 0) || if(!uIsFinite(min) || (data[i] > 0 && data[i]<min))
(data[i] > 0 && data[i]<min))
{ {
min = data[i]; min = data[i];
} }
if((uIsNan(max) && data[i] > 0) || if(!uIsFinite(max) || (data[i] > 0 && data[i]>max))
(data[i] > 0 && data[i]>max))
{ {
max = data[i]; max = data[i];
} }
} }
} }
qtemp = QImage(image.cols, image.rows, QImage::Format_Indexed8); qtemp = QImage(image.cols, image.rows, QImage::Format_Indexed8);
for(int y = 0; y < image.rows; ++y, data += image.cols) for(int y = 0; y < image.rows; ++y, data += image.cols)
{ {
for(int x = 0; x < image.cols; ++x) for(int x = 0; x < image.cols; ++x)
{ {
uchar * p = qtemp.scanLine (y) + x; uchar * p = qtemp.scanLine (y) + x;
if(data[x] < min || data[x] > max || uIsNan(data[x]) || max == min) if(data[x] < min || data[x] > max || !uIsFinite(data[x]) || max == min)
{ {
*p = 0; *p = 0;
} }
@@ -151,15 +150,13 @@ inline QImage uCvMat2QImage(const cv::Mat & image, bool isBgr = true, uCvQtDepth
unsigned short min=data[0], max=data[0]; unsigned short min=data[0], max=data[0];
for(unsigned int i=1; i<image.total(); ++i) for(unsigned int i=1; i<image.total(); ++i)
{ {
if(!uIsNan(data[i]) && data[i] > 0) if(uIsFinite(data[i]) && data[i] > 0)
{ {
if((uIsNan(min) && data[i] > 0) || if(!uIsFinite(min) || (data[i] > 0 && data[i]<min))
(data[i] > 0 && data[i]<min))
{ {
min = data[i]; min = data[i];
} }
if((uIsNan(max) && data[i] > 0) || if(!uIsFinite(max) || (data[i] > 0 && data[i]>max))
(data[i] > 0 && data[i]>max))
{ {
max = data[i]; max = data[i];
} }
@@ -172,7 +169,7 @@ inline QImage uCvMat2QImage(const cv::Mat & image, bool isBgr = true, uCvQtDepth
for(int x = 0; x < image.cols; ++x) for(int x = 0; x < image.cols; ++x)
{ {
uchar * p = qtemp.scanLine (y) + x; uchar * p = qtemp.scanLine (y) + x;
if(data[x] < min || data[x] > max || uIsNan(data[x]) || max == min) if(data[x] < min || data[x] > max || !uIsFinite(data[x]) || max == min)
{ {
*p = 0; *p = 0;
} }