首页 > 解决方案 > 来自检测的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可以正确绘制具有相应对象位置的所有矩形。

标签: c++opencv

解决方案


推荐阅读