Commit bebab8d6 authored by Leonid Volnitsky's avatar Leonid Volnitsky

fix: 6149 (through CV_Error on wrong image type)

parent df89e76f
...@@ -3796,7 +3796,7 @@ enum ColormapTypes ...@@ -3796,7 +3796,7 @@ enum ColormapTypes
/** @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image. /** @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.
@param src The source image, grayscale or colored does not matter. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.
@param dst The result is the colormapped source image. Note: Mat::create is called on dst. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.
@param colormap The colormap to apply, see cv::ColormapTypes @param colormap The colormap to apply, see cv::ColormapTypes
*/ */
......
...@@ -144,10 +144,7 @@ namespace colormap ...@@ -144,10 +144,7 @@ namespace colormap
// Applies the colormap on a given image. // Applies the colormap on a given image.
// //
// This function expects BGR-aligned data of type CV_8UC1 or // This function expects BGR-aligned data of type CV_8UC1 or CV_8UC3.
// CV_8UC3. If the wrong image type is given, the original image
// will be returned.
//
// Throws an error for wrong-aligned lookup table, which must be // Throws an error for wrong-aligned lookup table, which must be
// of size 256 in the latest OpenCV release (2.3.1). // of size 256 in the latest OpenCV release (2.3.1).
void operator()(InputArray src, OutputArray dst) const; void operator()(InputArray src, OutputArray dst) const;
...@@ -498,12 +495,8 @@ namespace colormap ...@@ -498,12 +495,8 @@ namespace colormap
if(_lut.total() != 256) if(_lut.total() != 256)
CV_Error(Error::StsAssert, "cv::LUT only supports tables of size 256."); CV_Error(Error::StsAssert, "cv::LUT only supports tables of size 256.");
Mat src = _src.getMat(); Mat src = _src.getMat();
// Return original matrix if wrong type is given (is fail loud better here?)
if(src.type() != CV_8UC1 && src.type() != CV_8UC3) if(src.type() != CV_8UC1 && src.type() != CV_8UC3)
{ CV_Error(Error::StsBadArg, "cv::ColorMap only supports source images of type CV_8UC1 or CV_8UC3");
src.copyTo(_dst);
return;
}
// Turn into a BGR matrix into its grayscale representation. // Turn into a BGR matrix into its grayscale representation.
if(src.type() == CV_8UC3) if(src.type() == CV_8UC3)
cvtColor(src.clone(), src, COLOR_BGR2GRAY); cvtColor(src.clone(), src, COLOR_BGR2GRAY);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment