很抱歉在这里提出这个问题,但是我已经花了好几天了,所以我不知道要使用什么公式。我希望有人知道我能做什么,谢谢!

因此,我试图为Darknet制作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中编辑/查看框了:(

谢谢!如果您需要更多信息,请告诉我!

最佳答案

感谢所有查看并考虑回答的人。我只是想通了!这是我需要用于解析的内容。

                var w = lineParts[3] * width
                var h = lineParts[4] * height
                var x = (lineParts[1] * width) - w / 2
                var y = (lineParts[2] * height) - h / 2

09-25 16:35