diff --git a/dlib/image_transforms/fhog.h b/dlib/image_transforms/fhog.h index 5a4b6a1e3..226b7522e 100644 --- a/dlib/image_transforms/fhog.h +++ b/dlib/image_transforms/fhog.h @@ -1058,7 +1058,8 @@ namespace dlib > matrix draw_fhog( const dlib::array,mm2>& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ) { // make sure requires clause is not broken @@ -1084,7 +1085,7 @@ namespace dlib const float val = hog[d][r/cell_draw_size][c/cell_draw_size] + hog[d+mbars.size()][r/cell_draw_size][c/cell_draw_size] + hog[d+mbars.size()*2][r/cell_draw_size][c/cell_draw_size]; - if (val > 0) + if (val > min_response_threshold) { set_subm(himg, r, c, cell_draw_size, cell_draw_size) += val*mbars[d%mbars.size()]; } @@ -1106,7 +1107,8 @@ namespace dlib > matrix draw_fhog ( const std::vector >& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ) { // make sure requires clause is not broken @@ -1131,7 +1133,7 @@ namespace dlib } } } - return draw_fhog(temp,cell_draw_size); + return draw_fhog(temp,cell_draw_size, min_response_threshold); } // ---------------------------------------------------------------------------------------- @@ -1142,7 +1144,8 @@ namespace dlib > matrix draw_fhog( const array2d,mm>& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ) { // make sure requires clause is not broken @@ -1167,7 +1170,7 @@ namespace dlib const float val = hog[r/cell_draw_size][c/cell_draw_size](d) + hog[r/cell_draw_size][c/cell_draw_size](d+mbars.size()) + hog[r/cell_draw_size][c/cell_draw_size](d+mbars.size()*2); - if (val > 0) + if (val > min_response_threshold) { set_subm(himg, r, c, cell_draw_size, cell_draw_size) += val*mbars[d%mbars.size()]; } diff --git a/dlib/image_transforms/fhog_abstract.h b/dlib/image_transforms/fhog_abstract.h index ff629d71b..f66c5d55a 100644 --- a/dlib/image_transforms/fhog_abstract.h +++ b/dlib/image_transforms/fhog_abstract.h @@ -271,7 +271,8 @@ namespace dlib > matrix draw_fhog( const dlib::array,mm2>& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ); /*! requires @@ -285,6 +286,8 @@ namespace dlib then returned. - The size of the cells in the output image will be rendered as cell_draw_size pixels wide and tall. + - HOG cells with a response value less than min_response_threshold are not + drawn. !*/ // ---------------------------------------------------------------------------------------- @@ -294,7 +297,8 @@ namespace dlib > matrix draw_fhog ( const std::vector >& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ); /*! requires @@ -303,6 +307,8 @@ namespace dlib ensures - This function just converts the given hog object into an array> and passes it to the above draw_fhog() routine and returns the results. + - HOG cells with a response value less than min_response_threshold are not + drawn. !*/ // ---------------------------------------------------------------------------------------- @@ -313,7 +319,8 @@ namespace dlib > matrix draw_fhog( const array2d,mm>& hog, - const long cell_draw_size = 15 + const long cell_draw_size = 15, + const float min_response_threshold = 0.0 ); /*! requires @@ -326,6 +333,8 @@ namespace dlib then returned. - The size of the cells in the output image will be rendered as cell_draw_size pixels wide and tall. + - HOG cells with a response value less than min_response_threshold are not + drawn. !*/ // ----------------------------------------------------------------------------------------