python - 如何将表格 [xmin ymin xmax ymax] 转换为图像中标准化的 [xy width height]?
问题描述
我正在使用 Microsoft 的CustomVision.ai构建自定义视觉应用程序。
我正在使用本教程。
在对象检测项目中标记图像时,需要使用归一化坐标指定每个标记对象的区域。
我有一个 XML 文件,其中包含有关图像的注释,例如名为sample_1.jpg
:
<annotation>
<filename>sample_1.jpg</filename>
<size>
<width>410</width>
<height>400</height>
<depth>3</depth>
</size>
<object>
<bndbox>
<xmin>159</xmin>
<ymin>15</ymin>
<xmax>396</xmax>
<ymax>302</ymax>
</bndbox>
</object>
</annotation>
我必须根据提供的教程将边界框坐标从 xmin,xmax,ymin,ymax 转换为 x,y,w,h 坐标。
谁能给我一个转换功能?
解决方案
假设 x/ymin 和 x/ymax 是你的边界角,分别是左上角和右下角。然后:
x = xmin
y = ymin
w = xmax - xmin
h = ymax - ymin
然后您需要对它们进行归一化,这意味着将它们作为整个图像的一部分,因此只需将每个值除以其各自的大小从上面的值中得出:
x = xmin / width
y = ymin / height
w = (xmax - xmin) / width
h = (ymax - ymin) / height
这假定原点为左上角,如果不是这种情况,您将必须应用移位因子。
推荐阅读
- java - 如何在 ldap 中按对象 SID 搜索用户
- postscript - 将字符串作为 PostScript 指令执行
- php - WordPress 中的 PHP DOM - 在输出缓冲区 HTML 中添加属性
- clojure - clojure 的“doc”命令打印出来是什么?
- javascript - 按下提交按钮后,寻找我的 Javascript 加载程序以激活
- swift - 填充 CirleProgressView 并将结果保存到 UserDefaults
- python - 发表评论后如何重定向我的用户
- android - Android studio - 在服务上发送关键事件
- r - 生成要复合的值索引,但以可扩展的方式忽略初始值
- python - 具有 pt_BR 语言环境的 Alpine 上的 Python 仍以英语输出