python中numpy和opencv坐标系不一致的问题

问题描述

使用yolo的边界框绘制Mask时,解析出了边界框坐上顶点和右下顶点的坐标,但是使用numpy处理时得到了错误的Mask,使用opencv能够得到正确的Mask。
使用numpy时的操作如下:

xmin, ymin, xmax, ymax = xyxy
mask[xmin:xmax, ymin:ymax] = 255

使用opencv时的操作如下:

c1, c2 = (xyxy[0], xyxy[1]), (xyxy[2], xyxy[3])
cv2.rectangle(mask, c1, c2, color=(255))

问题原因

opencv以左上角作为二维直角坐标系的零点,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。
numpy以左上角作为二维直角坐标系的零点,X轴为图像矩形左边的那条垂直线,Y轴为图像矩形的上面那条水平线。

解决办法

使用numpy时的操作改为:

xmin, ymin, xmax, ymax = xyxy
mask[ymin:ymax,xmin:xmax] = 255
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值