Commit af01267f authored by Vladislav Sovrasov's avatar Vladislav Sovrasov

Add assertion to prevent processing of large images in remap

parent 6c125331
...@@ -2286,6 +2286,8 @@ not supported by this function. ...@@ -2286,6 +2286,8 @@ not supported by this function.
borderMode=BORDER_TRANSPARENT, it means that the pixels in the destination image that borderMode=BORDER_TRANSPARENT, it means that the pixels in the destination image that
corresponds to the "outliers" in the source image are not modified by the function. corresponds to the "outliers" in the source image are not modified by the function.
@param borderValue Value used in case of a constant border. By default, it is 0. @param borderValue Value used in case of a constant border. By default, it is 0.
@note
Due to current implementaion limitations the size of an input and output images should be less than 32767x32767.
*/ */
CV_EXPORTS_W void remap( InputArray src, OutputArray dst, CV_EXPORTS_W void remap( InputArray src, OutputArray dst,
InputArray map1, InputArray map2, InputArray map1, InputArray map2,
......
...@@ -4856,6 +4856,8 @@ void cv::remap( InputArray _src, OutputArray _dst, ...@@ -4856,6 +4856,8 @@ void cv::remap( InputArray _src, OutputArray _dst,
Mat src = _src.getMat(), map1 = _map1.getMat(), map2 = _map2.getMat(); Mat src = _src.getMat(), map1 = _map1.getMat(), map2 = _map2.getMat();
_dst.create( map1.size(), src.type() ); _dst.create( map1.size(), src.type() );
Mat dst = _dst.getMat(); Mat dst = _dst.getMat();
CV_Assert( dst.cols < SHRT_MAX && dst.rows < SHRT_MAX && src.cols < SHRT_MAX && src.rows < SHRT_MAX );
if( dst.data == src.data ) if( dst.data == src.data )
src = src.clone(); src = src.clone();
......
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