【发布时间】:2019-09-03 02:46:01
【问题描述】:
很抱歉在这里问这个问题,但我已经研究了好几天了,我不知道要使用什么公式。我希望有人知道我能做什么,谢谢!
所以我正在尝试为暗网制作一个 GUI 工具,但前面显示的小方块位置错误。
图片尺寸:1024 x 683
标签文件中的注释行:0 0.6681250000000001 0.510788 0.09750000000000003 0.15103200000000006
我正在尝试像这样获得x,y,w,h
var convertDarknetImageLabelsToMatrices = function(loadedImage){
// loadedImage = {
// annotation: "0 0.6681250000000001 0.510788 0.09750000000000003 0.15103200000000006",
// dimensions: {
// height: 683,
// width: 1024
// }
// }
var width = loadedImage.dimensions.width
var height = loadedImage.dimensions.height
var matrices = []
var labels = loadedImage.annotation.split('\n')
labels.forEach(function(label){
if(!label)return
var lineParts = label.split(' ')
var classNumber = lineParts[0]
var x = lineParts[1] * width / 2
var y = lineParts[2] * height / 2
var w = lineParts[3] * width
var h = lineParts[4] * height
matrices.push({
classNumber: classNumber,
tag: loadedImage.className,
x: x,
y: y,
w: w,
h: h,
imageWidth: width,
imageHeight: height
})
})
return matrices
}
解析部分是
var x = lineParts[1] * width / 2
var y = lineParts[2] * height / 2
var w = lineParts[3] * width
var h = lineParts[4] * height
我添加了/2,因为它似乎使它更接近。在某些图像上,它几乎在单个轴上是精确的,例如 X 会对齐但 Y 会偏离。我试图找出一个静态公式,但它总是在打开另一个图像时偏离其他方向。
训练本身很好,我只是不能稍后在 UI 中编辑/查看框:(
谢谢!如果您需要更多信息,请告诉我!
【问题讨论】:
标签: javascript darknet