const Mat& mask, SparseMat& hist, int dims, const int* histSize,
const float** ranges, bool uniform, bool accumulate, bool keepInt )
{
- SparseMatIterator it;
size_t i, N;
if( !accumulate )
hist.create(dims, histSize, CV_32F);
else
+ {
+ SparseMatIterator it = hist.begin();
for( i = 0, N = hist.nzcount(); i < N; i++, ++it )
{
- int* value = (int*)it.ptr;
- *value = cvRound(*(const float*)value);
+ Cv32suf* val = (Cv32suf*)it.ptr;
+ val->i = cvRound(val->f);
}
+ }
vector<uchar*> ptrs;
vector<int> deltas;
calcSparseHist_<float>(ptrs, deltas, imsize, hist, dims, ranges, _uniranges, uniform );
if( !keepInt )
+ {
+ SparseMatIterator it = hist.begin();
for( i = 0, N = hist.nzcount(); i < N; i++, ++it )
{
- int* value = (int*)it.ptr;
- *(float*)value = (float)*value;
+ Cv32suf* val = (Cv32suf*)it.ptr;
+ val->f = (float)val->i;
}
+ }
}