图片在缩放的时候,图片的边框坐标也需要进行缩放。下面是测试代码
from PIL import Image,ImageDraw
import numpy as np
import cv2
import matplotlib.pyplot as plt
train_annotation_path = './2007_train.txt'
with open(train_annotation_path, encoding='utf-8') as f:
train_lines = f.readlines()
line=train_lines[0]
print(line)
line=line.split()
print(line)
image=Image.open(line[0]).convert('RGB') #图片
iw,ih=image.size
h,w=[640,640]
boxs=[list(map(int,box.split(','))) for box in line[1:]] #边界框
"""画原始边界框"""
# img1=image
# draw = ImageDraw.Draw(img1)
# color = [(0,0,0),(255,255,0),(25,25,112),(255,0,0),(0,0,255)]
# i=0
# for box in boxs:
# x1,y1,x2,y2,_ = box
# if i==5:
# i=0
# draw.rectangle([x1,y1,x2,y2], outline=color[i])
# i=i+1
# img1.show()
print(boxs)
# 不进行数据增强
scale=min(w/iw,h/ih) #最小宽高比 如果iw大于w