Add assertion to prevent processing of large images in remap

This commit is contained in:
Vladislav Sovrasov 2016-11-02 14:17:56 +03:00
parent 6c12533160
commit af01267f23
2 changed files with 4 additions and 0 deletions

View File

@ -2286,6 +2286,8 @@ not supported by this function.
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.
@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,
InputArray map1, InputArray map2,

View File

@ -4856,6 +4856,8 @@ void cv::remap( InputArray _src, OutputArray _dst,
Mat src = _src.getMat(), map1 = _map1.getMat(), map2 = _map2.getMat();
_dst.create( map1.size(), src.type() );
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 )
src = src.clone();