diff --git a/modules/objdetect/src/softcascade.cpp b/modules/objdetect/src/softcascade.cpp index 134fa9b2ca..bfda83426a 100644 --- a/modules/objdetect/src/softcascade.cpp +++ b/modules/objdetect/src/softcascade.cpp @@ -134,7 +134,7 @@ struct Level { scaling[0] = ((relScale >= 1.f)? 1.f : (0.89f * pow(relScale, 1.099f / log(2.f)))) / (relScale * relScale); scaling[1] = 1.f; - scaleshift = relScale * (1 << 16); + scaleshift = static_cast(relScale * (1 << 16)); } void addDetection(const int x, const int y, float confidence, std::vector& detections) const @@ -154,7 +154,7 @@ struct Level scaledRect.width = SSHIFT(scaleshift * scaledRect.width); scaledRect.height = SSHIFT(scaleshift * scaledRect.height); #undef SSHIFT - float sarea = (scaledRect.width - scaledRect.x) * (scaledRect.height - scaledRect.y); + float sarea = static_cast((scaledRect.width - scaledRect.x) * (scaledRect.height - scaledRect.y)); // compensation areas rounding return (sarea == 0.0f)? threshold : (threshold * scaling[idx] * sarea); @@ -197,7 +197,7 @@ struct ChannelStorage int c = ptr[area.height * step + area.width]; int d = ptr[area.height * step + area.x]; - return (a - b + c - d); + return static_cast(a - b + c - d); } }; @@ -307,8 +307,8 @@ struct cv::SCascade::Fields float scale = minScale; for (int sc = 0; sc < scales; ++sc) { - int width = std::max(0.0f, frameSize.width - (origObjWidth * scale)); - int height = std::max(0.0f, frameSize.height - (origObjHeight * scale)); + int width = static_cast(std::max(0.0f, frameSize.width - (origObjWidth * scale))); + int height = static_cast(std::max(0.0f, frameSize.height - (origObjHeight * scale))); float logScale = log(scale); octIt_t fit = fitOctave(logScale); @@ -462,7 +462,7 @@ void cv::SCascade::detect(cv::InputArray _image, cv::InputArray _rois, std::vect CV_Assert(image.type() == CV_8UC3); Fields& fld = *fields; - fld.calcLevels(image.size(),(float) minScale, (float)maxScale, (float)scales); + fld.calcLevels(image.size(),(float) minScale, (float)maxScale, scales); objects.clear();