提交 4046f039 编写于 作者: M Miroslav Benes

Make Otsu and Triangle algorithms mutually exclusive

Make Otsu and Triangle algorithms mutually exclusive in cv::threshold code.
Signed-off-by: NMiroslav Benes <mbenes@suse.cz>
上级 5b1fd739
...@@ -1189,20 +1189,19 @@ double cv::threshold( InputArray _src, OutputArray _dst, double thresh, double m ...@@ -1189,20 +1189,19 @@ double cv::threshold( InputArray _src, OutputArray _dst, double thresh, double m
ocl_threshold(_src, _dst, thresh, maxval, type), thresh) ocl_threshold(_src, _dst, thresh, maxval, type), thresh)
Mat src = _src.getMat(); Mat src = _src.getMat();
bool use_otsu = (type & THRESH_OTSU) != 0; int automatic_thresh = (type & ~CV_THRESH_MASK);
bool use_triangle = (type & THRESH_TRIANGLE) != 0;
type &= THRESH_MASK; type &= THRESH_MASK;
if( use_otsu ) CV_Assert( automatic_thresh != (CV_THRESH_OTSU | CV_THRESH_TRIANGLE) );
if( automatic_thresh == CV_THRESH_OTSU )
{ {
CV_Assert( src.type() == CV_8UC1 ); CV_Assert( src.type() == CV_8UC1 );
thresh = getThreshVal_Otsu_8u(src); thresh = getThreshVal_Otsu_8u( src );
} }
else if( automatic_thresh == CV_THRESH_TRIANGLE )
if( use_triangle )
{ {
CV_Assert( src.type() == CV_8UC1 ); CV_Assert( src.type() == CV_8UC1 );
thresh = getThreshVal_Triangle_8u(src); thresh = getThreshVal_Triangle_8u( src );
} }
_dst.create( src.size(), src.type() ); _dst.create( src.size(), src.type() );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册