gpt4 book ai didi

c++ - 将opencv矩形坐标转换为yolo对象坐标以进行图像标记

转载 作者:行者123 更新时间:2023-12-02 10:28:25 24 4
gpt4 key购买 nike

我想用opencv c++创建图像标记程序来标记yolo对象检测器的图像,但是我正在努力将矩形坐标(x1,y1,x2,y2)转换为yolo格式,即“对象类x_center y_center width height” 。并且根据文档x_center和y_center是矩形的中心(不是左上角)。
我在已标记的图像上尝试了此代码

            double centerX = (x1 + x2) / (2.0 * imageWidth);
double centerY = (y1 + y2) / (2.0 * imageHeight);
double width = double(abs(x2 - x1) / imageWidth);
double height = double(abs(y2- y1) / imageHeight);
并得到 0 0.396759 0.278906 0.0109375 0.326852这与 0 0.40703125 0.5194444444444445 0.25364583333333335 0.5851851851851851
我怎样才能使它正常工作?

最佳答案

我终于找到了有效的代码:

Point centralPoint = Point((selectedRect.tl().x + selectedRect.br().x) / 2, (selectedRect.tl().y + selectedRect.br().y) / 2);
centerX = centralPoint.x / imageWidth;
centerY = centralPoint.y / imageHeight;

rectWidth = abs(selectedRect.br().x - selectedRect.tl().x) / imageWidth;
rectHeight = abs(selectedRect.br().y - selectedRect.tl().y) / imageHeight;

关于c++ - 将opencv矩形坐标转换为yolo对象坐标以进行图像标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63301449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com