如何通过 calcBackProject 获得包含超过 255 或十进制的数字的反向投影矩阵
How can I get Back Projection matrix including numbers over 255 or decimal by 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;
}
但由于"uchar",它的最大值是 255。我尝试使用
Mat backProj( slid_.rows, slid_.cols, CV_64FC1 );
使用计算后,显示它
cout << backProj.at< double >( i, j );
但它不起作用。
我真的需要大于 255 的确切数字。我以前不想使用规范化。我可以通过calcBackProject制作吗?
如果我尝试缩小它,这个反向投影矩阵可以包含十进制吗?因为我不希望这个矩阵中存在 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 );
}
}
}
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 将数字打印成文字
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 如何通过 calcBackProject 获得包含超过 255 或十进制的数字的反向投影矩阵