50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#undef DLIB_MAX_SUM_SUBMaTRIX_ABSTRACT_Hh_
|
|
#ifdef DLIB_MAX_SUM_SUBMaTRIX_ABSTRACT_Hh_
|
|
|
|
#include "../matrix.h"
|
|
#include <vector>
|
|
#include "../geometry.h"
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
template <
|
|
typename EXP
|
|
>
|
|
std::vector<rectangle> max_sum_submatrix(
|
|
const matrix_exp<EXP>& mat,
|
|
unsigned long max_rects,
|
|
double thresh = 0
|
|
);
|
|
/*!
|
|
requires
|
|
- thresh >= 0
|
|
- mat.size() != 0
|
|
ensures
|
|
- This function finds the submatrix within mat which has the largest sum. It then
|
|
zeros out that submatrix and repeats the process until no more maximal submatrices can
|
|
be found. The std::vector returned will be ordered so that the rectangles with the
|
|
largest sum come first.
|
|
- Each submatrix must have a sum greater than thresh. If no such submatrix exists then
|
|
the algorithm terminates and returns an empty std::vector.
|
|
- At most max_rects rectangles are returned.
|
|
|
|
- This function is basically an implementation of the efficient subwindow search (I-ESS)
|
|
algorithm presented in the following paper:
|
|
Efficient Algorithms for Subwindow Search in Object Detection and Localization
|
|
by Senjian An, Patrick Peursum, Wanquan Liu and Svetha Venkatesh
|
|
In CVPR 2009
|
|
!*/
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_MAX_SUM_SUBMaTRIX_ABSTRACT_Hh_
|
|
|
|
|