在 python 中裁剪图像
Cropping an image in python
我正在使用 Azure Custom Vision 进行对象检测项目。我得到的边界框的一个例子是 [0.053913698, 0.6198375, 0.09218301, 0.13308609]
.
所选答案 here 不适合我的任务,因为所有值都小于 0。
有人可以帮忙吗?
原因
边界框列表告诉您 ["left", "top", "width", "height"]
,并且每个边界框都是 图像原始大小的百分比 .
解决方案
假设您的图片尺寸为 800 x 600(即图片宽度为 800,图片高度为 600)。因此,您需要做的是将宽度和高度乘以相应的值。阅读下面 Python 中的代码:
imageWidth = 800
imageHeight = 600
bbx = {
"left": 0.053913698,
"top": 0.6198375,
"width": 0.09218301,
"height": 0.13308609
}
# top-left point position
(x, y) = (bbx["left"]*imageWidth, bbx["top"]*imageHeight)
# bounding box's width and height
bbxWidth = bbx["width"] * imageWidth
bbxHeight = bbx["height"] * imageHeight
您可以使用以上值(即 x
、y
、bbxWidth
和 bbxHeight
)在原始图像上绘制边界框。
我正在使用 Azure Custom Vision 进行对象检测项目。我得到的边界框的一个例子是 [0.053913698, 0.6198375, 0.09218301, 0.13308609]
.
所选答案 here 不适合我的任务,因为所有值都小于 0。
有人可以帮忙吗?
原因
边界框列表告诉您 ["left", "top", "width", "height"]
,并且每个边界框都是 图像原始大小的百分比 .
解决方案
假设您的图片尺寸为 800 x 600(即图片宽度为 800,图片高度为 600)。因此,您需要做的是将宽度和高度乘以相应的值。阅读下面 Python 中的代码:
imageWidth = 800
imageHeight = 600
bbx = {
"left": 0.053913698,
"top": 0.6198375,
"width": 0.09218301,
"height": 0.13308609
}
# top-left point position
(x, y) = (bbx["left"]*imageWidth, bbx["top"]*imageHeight)
# bounding box's width and height
bbxWidth = bbx["width"] * imageWidth
bbxHeight = bbx["height"] * imageHeight
您可以使用以上值(即 x
、y
、bbxWidth
和 bbxHeight
)在原始图像上绘制边界框。