Как я могу получить матрицу обратной проекции, включая числа свыше 255 или десятичную, от calcBackProject?

Мне нужно использовать calcBackProject а затем отобразить точное число.

    for ( int i = 0; i < backProj.rows; ++i )
{
for ( int j = 0; j < backProj.cols; ++j )
{
cout << int(backProj.at< uchar >( i, j )) << " ";
}
cout << endl;
}

Но его максимальное значение 255 из-за «учар».
Я пытался использовать

    Mat backProj( slid_.rows, slid_.cols, CV_64FC1 );

После использования calcBackProject, показать это

    cout << backProj.at< double >( i, j );

Но это не работает.

Мне действительно нужны точные цифры, которые больше 255. Я не хочу использовать нормализовать до. Могу ли я сделать это путем calcBackProject?

Если я попытаюсь уменьшить его, может эта матрица обратной проекции включает в себя десятичную? Потому что я не хочу, чтобы в этой матрице было 0.

Спасибо.

0

Решение

Наконец, я написал свою собственную функцию для получения обратной проекции. Надеюсь, что это может помочь вам, у кого такая же проблема.

float ReadValueFromHist( const Mat& hist, const int x, const int y ) const
{
int indexAlpha = int( mat.at< Vec4b >( x, y )[ 3 ] ) * bins / 256;
return hist.at< float >( indexAlpha, 0 );
}

void CalcBackProj()
{
backProj = Mat( mat.rows, mat.cols, CV_32FC1);
for ( int i = 0; i < mat.rows; ++i )
{
for ( int j = 0; j < mat.cols; ++j )
{
backProj.at< float >( i, j ) = ReadValueFromHist( hist, i, j );
}
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]