
1条回答 默认 最新
梦幻精灵_cq 2023-10-06 17:37关注您得隆重介绍下转换函数的形参size、box要代入的实参,晓得两个实参她们俩是个啥,才好分析函数中的x、y变量为啥子都要-1。
复刻您截图中的convert函数,得不到正确结果。
如:size, box = (3, 3), (1, 4, 1, 4)
输出:
实参图形
很显然,输出不对!我认为算法设计有问题。
def convert(size, box): dw, dh = 1./size[0], 1./size[1] x = (box[0] + box[1])/2.0 - 1 y = (box[2] + box[3])/2.0 - 1 w = box[1] - box[0] h = box[3] - box[2] x *= dw w *= dw y *= dh h *= dh return x, y, w, h- 应该是——

代码
#!/sur/bin/nve python # coding: utf-8 def convert(size, box): w, h = size # 框宽高可以直接赋值。 x1, x2, y1, y2 = box # (x1, y1)、(x2, y2)框左上角右下角坐标赋值变量,方便计算。 x = abs(x1-x2)/2 + x1 # 计算x轴,起点x值+框宽一半。 y = abs(y1-y2)/2 + y1 # 计算y轴,起点y值+框高的一半。 return (x, y), w, h if __name__ == '__main__': size, box = (3, 3), (1, 4, 1, 4) #size, box = (4, 3), (1, 5, 1, 4) print(convert(size, box))- 实参size, box = (4, 3), (1, 5, 1, 4)
实参图形
输出
解决 无用评论 打赏 举报 编辑记录