边界框提取
Bounding box extraction
我在使用我发现的用于生成位于 .xml
文件中的 xmin、xmax、ymin、ymax 的函数时遇到了一些问题。我不确定为什么它不起作用,我觉得这是一个我没有考虑的简单错误。
def extract_boxes(self, filename):
# load and parse the file
tree = ElementTree.parse(filename)
# get the root of the document
root = tree.getroot()
# extract each bounding box
boxes = list()
for box in root.findall('.//bndbox'):
xmin = int(box.find('xmin').text)
ymin = int(box.find('ymin').text)
xmax = int(box.find('xmax').text)
ymax = int(box.find('ymax').text)
coors = [xmin, ymin, xmax, ymax]
boxes.append(coors)
# extract image dimensions
width = int(root.find('.//size/width').text)
height = int(root.find('.//size/height').text)
return boxes, width, height
bbs = extract_boxes(r'C:\Users\name\Desktop\kangaroo-master\annots[=10=]001.xml')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-18-b6a299d4377e> in <module>
23
24
---> 25 bbs = extract_boxes(r'C:\Users\name\Desktop\kangaroo-master\annots[=11=]001.xml')
26
27
TypeError: extract_boxes() missing 1 required positional argument: 'filename'
我发现了错误。我没有导入 Element Tree 并且需要删除 self
,因为我最初从 class 中提取代码,但我不再在 class 中使用它。
import xml.etree.ElementTree as ET
def extract_boxes(filename):
# load and parse the file
tree = ET.parse(filename)
# get the root of the document
root = tree.getroot()
# extract each bounding box
boxes = list()
for box in root.findall('.//bndbox'):
xmin = int(box.find('xmin').text)
ymin = int(box.find('ymin').text)
xmax = int(box.find('xmax').text)
ymax = int(box.find('ymax').text)
coors = [xmin, ymin, xmax, ymax]
boxes.append(coors)
# extract image dimensions
width = int(root.find('.//size/width').text)
height = int(root.find('.//size/height').text)
return boxes, width, height
bbs = extract_boxes(r'C:\Users\zlesl\Desktop\kangaroo-master\annots[=10=]001.xml')```
我在使用我发现的用于生成位于 .xml
文件中的 xmin、xmax、ymin、ymax 的函数时遇到了一些问题。我不确定为什么它不起作用,我觉得这是一个我没有考虑的简单错误。
def extract_boxes(self, filename):
# load and parse the file
tree = ElementTree.parse(filename)
# get the root of the document
root = tree.getroot()
# extract each bounding box
boxes = list()
for box in root.findall('.//bndbox'):
xmin = int(box.find('xmin').text)
ymin = int(box.find('ymin').text)
xmax = int(box.find('xmax').text)
ymax = int(box.find('ymax').text)
coors = [xmin, ymin, xmax, ymax]
boxes.append(coors)
# extract image dimensions
width = int(root.find('.//size/width').text)
height = int(root.find('.//size/height').text)
return boxes, width, height
bbs = extract_boxes(r'C:\Users\name\Desktop\kangaroo-master\annots[=10=]001.xml')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-18-b6a299d4377e> in <module>
23
24
---> 25 bbs = extract_boxes(r'C:\Users\name\Desktop\kangaroo-master\annots[=11=]001.xml')
26
27
TypeError: extract_boxes() missing 1 required positional argument: 'filename'
我发现了错误。我没有导入 Element Tree 并且需要删除 self
,因为我最初从 class 中提取代码,但我不再在 class 中使用它。
import xml.etree.ElementTree as ET
def extract_boxes(filename):
# load and parse the file
tree = ET.parse(filename)
# get the root of the document
root = tree.getroot()
# extract each bounding box
boxes = list()
for box in root.findall('.//bndbox'):
xmin = int(box.find('xmin').text)
ymin = int(box.find('ymin').text)
xmax = int(box.find('xmax').text)
ymax = int(box.find('ymax').text)
coors = [xmin, ymin, xmax, ymax]
boxes.append(coors)
# extract image dimensions
width = int(root.find('.//size/width').text)
height = int(root.find('.//size/height').text)
return boxes, width, height
bbs = extract_boxes(r'C:\Users\zlesl\Desktop\kangaroo-master\annots[=10=]001.xml')```