diff --git a/modules/core/src/arithm.cpp b/modules/core/src/arithm.cpp index d2f2819146..90c29bc011 100644 --- a/modules/core/src/arithm.cpp +++ b/modules/core/src/arithm.cpp @@ -1278,7 +1278,9 @@ static void arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst, "nor 'array op scalar', nor 'scalar op array'" ); haveScalar = true; CV_Assert(src2.type() == CV_64F && (src2.rows == 4 || src2.rows == 1)); - depth2 = MAX(src1.depth(), actualScalarDepth(src2.ptr(), src1.channels())); + + if (usrdata == 0) // hack to filter out multiply and divide + depth2 = actualScalarDepth(src2.ptr(), src1.channels()); } int cn = src1.channels(), depth1 = src1.depth(), wtype;