c++ - 来自检测的opencv C++负X,Y坐标(yolo检测)
问题描述
我正在使用 Yolo 检测算法来预测边界框,但是检测返回一些值作为负整数,但是该cv::rectangle
函数在图像上绘制了正确的矩形,所以有点令人费解为什么检测坐标中有负值甚至长值,hereget_rect
应用 NMS 后函数返回 x,y,width,height
std::vector<uint> rr = get_rect(img, res[j].bbox);
后来将其转换为opencv可以理解的格式:
cv::Rect r = cv::Rect(rr[0],rr[1],rr[2],rr[3]);
当打印以下Rect r
某些值的值不明确时,
r.x = 398
r.y = 1431655936
r.width = 22
r.height = -1431655867
可以看出 y 坐标和高度的值完全在画布之外,因此有任何原因。
此外,我确保输入图像尺寸、推断尺寸和输出图像渲染尺寸都相同,并且cv::rectangle
可以正确绘制具有相应对象位置的所有矩形。
解决方案
推荐阅读
- javascript - 从 API 获取 YouTube 视频能够通过按钮 Onclick 显示,需要显示在页面上而不是通过按钮点击直接在我的页面上
- itext - 波斯语的 PDF IText-7 布局支持?
- ar.js - AR.JS - 与条形码标记不一致的结果
- python - 如何将基于 html 组件的表转换为 dash Datatable
- docker - 如何使用 Docker 桌面停止 Docker(和 Kubernetes)?
- c# - Dot NET core 3.1 使用 MapControllerRoute 将参数传递给操作
- android - 如何使用范围存储更新 Android 11 中的媒体存储?
- excel - 如何获取活动 NamedSheetView 类的名称属性?
- c# - 无法通过客户端凭据提供程序流在通道中发送消息 - Microsoft Graph API
- flutter - Flutter IAP 未收到应用内购买付款