@@ -85,15 +85,15 @@ static String toString(const T &v)
85
85
}
86
86
87
87
Mat blobFromImage (const Mat& image, double scalefactor, const Size& size,
88
- const Scalar& mean, bool swapRB)
88
+ const Scalar& mean, bool swapRB, bool crop )
89
89
{
90
90
CV_TRACE_FUNCTION ();
91
91
std::vector<Mat> images (1 , image);
92
- return blobFromImages (images, scalefactor, size, mean, swapRB);
92
+ return blobFromImages (images, scalefactor, size, mean, swapRB, crop );
93
93
}
94
94
95
95
Mat blobFromImages (const std::vector<Mat>& images_, double scalefactor, Size size,
96
- const Scalar& mean_, bool swapRB)
96
+ const Scalar& mean_, bool swapRB, bool crop )
97
97
{
98
98
CV_TRACE_FUNCTION ();
99
99
std::vector<Mat> images = images_;
@@ -104,13 +104,18 @@ Mat blobFromImages(const std::vector<Mat>& images_, double scalefactor, Size siz
104
104
size = imgSize;
105
105
if (size != imgSize)
106
106
{
107
- float resizeFactor = std::max (size.width / (float )imgSize.width ,
108
- size.height / (float )imgSize.height );
109
- resize (images[i], images[i], Size (), resizeFactor, resizeFactor);
110
- Rect crop (Point (0.5 * (images[i].cols - size.width ),
111
- 0.5 * (images[i].rows - size.height )),
112
- size);
113
- images[i] = images[i](crop);
107
+ if (crop)
108
+ {
109
+ float resizeFactor = std::max (size.width / (float )imgSize.width ,
110
+ size.height / (float )imgSize.height );
111
+ resize (images[i], images[i], Size (), resizeFactor, resizeFactor);
112
+ Rect crop (Point (0.5 * (images[i].cols - size.width ),
113
+ 0.5 * (images[i].rows - size.height )),
114
+ size);
115
+ images[i] = images[i](crop);
116
+ }
117
+ else
118
+ resize (images[i], images[i], size);
114
119
}
115
120
if (images[i].depth () == CV_8U)
116
121
images[i].convertTo (images[i], CV_32F);
0 commit comments