OpenCV 3 HOG检测置信度
OpenCV 3 HOG Detection confidence?
我正在使用OpenCV 3 HOG人员检测器来检测在我的笔记本电脑网络摄像头前移动的人员。检测部分工作有点好,但我想从HOG分类器获得信心,我认为这应该是可能的。
我使用以下代码来获取检测到的对象的边界框:
std::vector< cv::Rect> found_locations_rect;
d_hog->detectMultiScale(rGpuImg, found_locations_rect);
根据智能感知提示,应该可以使用以下命令提取置信度:
void detectMultiScale(cv::InputArray img, std::vector<cv::Rect> &found_locations, std::vector<double> *confidence = (std::vector<double> *)0);
但我不知道如何声明和初始化*信心变量,你能帮我吗?
你可以看一下官方的OpenCV文档,它声明了这个detectMultiScale函数的过载(CPU实现):
virtual void cv::HOGDescriptor::detectMultiScale ( InputArray img,
std::vector< Rect > & foundLocations,
std::vector< double > & foundWeights,
double hitThreshold = 0,
Size winStride = Size(),
Size padding = Size(),
double scale = 1.05,
double finalThreshold = 2.0,
bool useMeanshiftGrouping = false
) const
and for GPU
virtual void cv::cuda::HOG::detectMultiScale ( InputArray img,
std::vector< Rect > & found_locations,
std::vector< double > * confidences = NULL
)
所以你可以简单地调用它(CPU mode):
std::vector< cv::Rect> found_locations_rect;
std::vector<double> found_weights;
d_hog->detectMultiScale(mat, found_locations_rect, found_weights);
或(GPU实现):
std::vector< cv::Rect> found_locations_rect;
std::vector<double> confidences;
d_hog->detectMultiScale(rGpuImg, found_locations_rect, &confidences);
如果它不工作,OpenCV将抛出一个异常。您可以像这样显示它:
try
{
std::vector< cv::Rect> found_locations_rect;
std::vector<double> confidences;
d_hog->detectMultiScale(rGpuImg, found_locations_rect, &confidences);
}
catch(const std::exception& e)
{
std::cout << e.what() << std::endl;
}
之后你就可以解决这个问题了
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- 检测 COFF 对象文件中C++内联符号
- qmake:检测目标位宽(32 位或 64 位)
- 增强精神解析器规则以检测语句中的特殊结尾
- 使用 HOG 描述符进行人体检测
- 尝试创建用于检测人员的HOG实现
- OpenCV 3 HOG检测置信度
- 在OpenCV中使用GPU进行对象检测的HOG功能