fixed build errors in bgfg_gmg
This commit is contained in:
parent
2a1e8e3efd
commit
941897aa3d
@ -251,7 +251,7 @@ private:
|
|||||||
int frameNum_;
|
int frameNum_;
|
||||||
|
|
||||||
cv::Mat_<int> nfeatures_;
|
cv::Mat_<int> nfeatures_;
|
||||||
cv::Mat_<uint> colors_;
|
cv::Mat_<unsigned int> colors_;
|
||||||
cv::Mat_<float> weights_;
|
cv::Mat_<float> weights_;
|
||||||
|
|
||||||
cv::Mat buf_;
|
cv::Mat buf_;
|
||||||
|
@ -91,7 +91,7 @@ void cv::BackgroundSubtractorGMG::initialize(cv::Size frameSize, double min, dou
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
float findFeature(uint color, const uint* colors, const float* weights, int nfeatures)
|
float findFeature(unsigned int color, const unsigned int* colors, const float* weights, int nfeatures)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < nfeatures; ++i)
|
for (int i = 0; i < nfeatures; ++i)
|
||||||
{
|
{
|
||||||
@ -116,7 +116,7 @@ namespace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool insertFeature(uint color, float weight, uint* colors, float* weights, int& nfeatures, int maxFeatures)
|
bool insertFeature(unsigned int color, float weight, unsigned int* colors, float* weights, int& nfeatures, int maxFeatures)
|
||||||
{
|
{
|
||||||
int idx = -1;
|
int idx = -1;
|
||||||
for (int i = 0; i < nfeatures; ++i)
|
for (int i = 0; i < nfeatures; ++i)
|
||||||
@ -134,7 +134,7 @@ namespace
|
|||||||
{
|
{
|
||||||
// move feature to beginning of list
|
// move feature to beginning of list
|
||||||
|
|
||||||
::memmove(colors + 1, colors, idx * sizeof(uint));
|
::memmove(colors + 1, colors, idx * sizeof(unsigned int));
|
||||||
::memmove(weights + 1, weights, idx * sizeof(float));
|
::memmove(weights + 1, weights, idx * sizeof(float));
|
||||||
|
|
||||||
colors[0] = color;
|
colors[0] = color;
|
||||||
@ -144,7 +144,7 @@ namespace
|
|||||||
{
|
{
|
||||||
// discard oldest feature
|
// discard oldest feature
|
||||||
|
|
||||||
::memmove(colors + 1, colors, (nfeatures - 1) * sizeof(uint));
|
::memmove(colors + 1, colors, (nfeatures - 1) * sizeof(unsigned int));
|
||||||
::memmove(weights + 1, weights, (nfeatures - 1) * sizeof(float));
|
::memmove(weights + 1, weights, (nfeatures - 1) * sizeof(float));
|
||||||
|
|
||||||
colors[0] = color;
|
colors[0] = color;
|
||||||
@ -168,12 +168,12 @@ namespace
|
|||||||
{
|
{
|
||||||
template <typename T> struct Quantization
|
template <typename T> struct Quantization
|
||||||
{
|
{
|
||||||
static uint apply(const void* src_, int x, int cn, double minVal, double maxVal, int quantizationLevels)
|
static unsigned int apply(const void* src_, int x, int cn, double minVal, double maxVal, int quantizationLevels)
|
||||||
{
|
{
|
||||||
const T* src = static_cast<const T*>(src_);
|
const T* src = static_cast<const T*>(src_);
|
||||||
src += x * cn;
|
src += x * cn;
|
||||||
|
|
||||||
uint res = 0;
|
unsigned int res = 0;
|
||||||
for (int i = 0, shift = 0; i < cn; ++i, ++src, shift += 8)
|
for (int i = 0, shift = 0; i < cn; ++i, ++src, shift += 8)
|
||||||
res |= static_cast<int>((*src - minVal) * quantizationLevels / (maxVal - minVal)) << shift;
|
res |= static_cast<int>((*src - minVal) * quantizationLevels / (maxVal - minVal)) << shift;
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ namespace
|
|||||||
class GMG_LoopBody : public cv::ParallelLoopBody
|
class GMG_LoopBody : public cv::ParallelLoopBody
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GMG_LoopBody(const cv::Mat& frame, const cv::Mat& fgmask, const cv::Mat_<int>& nfeatures, const cv::Mat_<uint>& colors, const cv::Mat_<float>& weights,
|
GMG_LoopBody(const cv::Mat& frame, const cv::Mat& fgmask, const cv::Mat_<int>& nfeatures, const cv::Mat_<unsigned int>& colors, const cv::Mat_<float>& weights,
|
||||||
int maxFeatures, double learningRate, int numInitializationFrames, int quantizationLevels, double backgroundPrior, double decisionThreshold,
|
int maxFeatures, double learningRate, int numInitializationFrames, int quantizationLevels, double backgroundPrior, double decisionThreshold,
|
||||||
double maxVal, double minVal, int frameNum, bool updateBackgroundModel) :
|
double maxVal, double minVal, int frameNum, bool updateBackgroundModel) :
|
||||||
frame_(frame), fgmask_(fgmask), nfeatures_(nfeatures), colors_(colors), weights_(weights),
|
frame_(frame), fgmask_(fgmask), nfeatures_(nfeatures), colors_(colors), weights_(weights),
|
||||||
@ -202,7 +202,7 @@ namespace
|
|||||||
mutable cv::Mat_<uchar> fgmask_;
|
mutable cv::Mat_<uchar> fgmask_;
|
||||||
|
|
||||||
mutable cv::Mat_<int> nfeatures_;
|
mutable cv::Mat_<int> nfeatures_;
|
||||||
mutable cv::Mat_<uint> colors_;
|
mutable cv::Mat_<unsigned int> colors_;
|
||||||
mutable cv::Mat_<float> weights_;
|
mutable cv::Mat_<float> weights_;
|
||||||
|
|
||||||
int maxFeatures_;
|
int maxFeatures_;
|
||||||
@ -220,7 +220,7 @@ namespace
|
|||||||
|
|
||||||
void GMG_LoopBody::operator() (const cv::Range& range) const
|
void GMG_LoopBody::operator() (const cv::Range& range) const
|
||||||
{
|
{
|
||||||
typedef uint (*func_t)(const void* src_, int x, int cn, double minVal, double maxVal, int quantizationLevels);
|
typedef unsigned int (*func_t)(const void* src_, int x, int cn, double minVal, double maxVal, int quantizationLevels);
|
||||||
static const func_t funcs[] =
|
static const func_t funcs[] =
|
||||||
{
|
{
|
||||||
Quantization<uchar>::apply,
|
Quantization<uchar>::apply,
|
||||||
@ -246,10 +246,10 @@ namespace
|
|||||||
for (int x = 0; x < frame_.cols; ++x, ++featureIdx)
|
for (int x = 0; x < frame_.cols; ++x, ++featureIdx)
|
||||||
{
|
{
|
||||||
int nfeatures = nfeatures_row[x];
|
int nfeatures = nfeatures_row[x];
|
||||||
uint* colors = colors_[featureIdx];
|
unsigned int* colors = colors_[featureIdx];
|
||||||
float* weights = weights_[featureIdx];
|
float* weights = weights_[featureIdx];
|
||||||
|
|
||||||
uint newFeatureColor = func(frame_row, x, cn, minVal_, maxVal_, quantizationLevels_);
|
unsigned int newFeatureColor = func(frame_row, x, cn, minVal_, maxVal_, quantizationLevels_);
|
||||||
|
|
||||||
bool isForeground = false;
|
bool isForeground = false;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user