import os.path
from typing import Iterator
import numpy as np
import torch
import cv2
from PIL import Image,ImageDraw
from torch.utils.data import Dataset,DataLoader,Subset,random_split
import re
from functools import reduce
from torch.utils.tensorboard import SummaryWriter as Writer
from torchvision import transforms,datasets
import torchvision as tv
from torch import nn
import torch.nn.functional as F
import time
t1=transforms.ToTensor()
t2=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
t=transforms.Compose([t1,t2])
#使用该法读取下载好的数据集,需要正确输入年份,保持正确的目录结构:D:\VOCdevkit\VOC2012
TrainDataSet=datasets.VOCDetection(r'D:\\',year='2012', image_set='val', download=False)
image,info=TrainDataSet[1]
#首先取出标注信息:
annotationList=info['annotation']['object']
image=np.array(image).copy()
#转换为bgr图片,最后进行的操作前,添加copy,不然会报Layout of the output array img is incompatible with cv::Mat
image=image[:,:,::-1].copy()
for annotation in annotationList:
xmin, ymin, xmax, ymax = list(map(int,annotation['bndbox'].values()))
picName=annotation['name']
cv2.rectangle(image, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
#图片,添加的文字,左下角坐标,字体,字体比例因子,颜色,字体粗细
cv2.putText(image,picName,(xmin, ymin),fontScale=0.5,fontFace=cv2.FONT_HERSHEY_SIMPLEX,color=(0, 255, 0),thickness=2)
cv2.imshow("pic",image)
cv2.waitKey()
使用pytorch解析json读取voc数据集 VOCDetection
最新推荐文章于 2023-04-11 20:19:04 发布