使用opencv进行读取:
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])
#数据集下载后为PIL格式:conda install git
TrainDataSet=datasets.CocoDetection(root=r"D:\coco2017\val2017\val2017", annFile=r"D:\coco2017\annotations_trainval2017\annotations\instances_val2017.json")
i=0
image,info=TrainDataSet[0]
image=np.array(image)
#调整为opencv使用的BGR
image = image[:, :, ::-1]
#为适配OPENCV转化为深拷贝
image=image.copy()
for annotation in info:
x,y,width,height=annotation['bbox']
#矩形函数必须转化为整数:
x=int(x)
y = int(y)
width=int(width)
height=int(height)
cv2.rectangle(image, (x,y), (x+width, y+height), (0, 255, 0), 4)
cv2.imshow("emample",image)
cv2.waitKey()
使用PIL进行读取:
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])
#数据集下载后为PIL格式:conda install git
TrainDataSet=datasets.CocoDetection(root=r"D:\coco2017\val2017\val2017",
annFile=r"D:\coco2017\annotations_trainval2017\annotations\instances_val2017.json")
i=0
image,info=TrainDataSet[0]
drawer=ImageDraw.ImageDraw(image)
for annotation in info:
x,y,width,height=annotation['bbox']
#注意打双括号,1个参数
drawer.rectangle(((x,y), (x+width, y+height)))
image.show()