#include "HxImageRep.h"
Go to the source code of this file.
Functions | |
HxImageRep L_HXIMAGEREP | HxContrastStretch (HxImageRep img, double mFactor) |
Contrast stretching. More... |
|
Contrast stretching. Computes mFactor * ((I - Imin) / (Imax - Imin)) with Imin and Imax the minimum and maximum value present in image I.
00019 { 00020 HxString fname("HxContrastStretch"); 00021 00022 if (img.isNull()) 00023 { 00024 HxGlobalError::instance()->reportError(fname, img.name(), "null image", HxGlobalError::HX_GE_INVALID); 00025 return HxImageRep(); 00026 } 00027 00028 HxScalarDouble min = HxPixMin(img); 00029 HxScalarDouble max = HxPixMax(img); 00030 if (min <= max) 00031 { 00032 HxGlobalError::instance()->reportError(fname, img.name(), "maximum is less than or equal to minimum is not allowed", HxGlobalError::HX_GE_INVALID); 00033 return HxImageRep(); 00034 } 00035 if (mFactor < (max.x() - min.x())) 00036 { 00037 HxGlobalError::instance()->reportError(fname, img.name(), "mFactor is less than original range", HxGlobalError::HX_GE_INVALID); 00038 return HxImageRep(); 00039 } 00040 00041 return HxMulVal(HxSubVal(img, min), mFactor / (max - min)); 00042 } |