查看引用的类中的函数的作用:
1)jupyter notebook 中使用help()查看 或 函数名??
2)在pycharm中鼠标放在此函数上按 ctrl+b 或 ctrl+鼠标点击
引用数据集图片:
将文件放置于此环境的文件夹下--选择引用的照片ctrl+shift+c
复制的路径中要用 \\
打开输入图片并查看数据:
from PIL import Image
img_path="D:\\pycharm_project\\project1\\xiaotudui1\\dataset\\train\\ants\\0013035.jpg"
img=Image.open(img_path)
img.size
/Out[5]: (768, 512)
img.show(img_path)
导入文件夹下的所以图片:
dir_path="dataset/train/ants"
import os
dir_path="dataset/train/ants"
img_path_list=os.listdir(dir_path)
分别导入两个文件夹:(用大文件路径+小文件路径)
import os
root_dir="dataset/train"
label_dir="ant"
path=os.path.join(root_dir,label_dir)
完整试例:
from torch.utils.data import Dataset
from PIL import Image
import os
class MyData(Dataset):
def __init__(self,root_dir,label_dir):
self.root_dir=root_dir
self.label_dir=label_dir
self.path=os.path.join(self.root_dir,self.label_dir)
self.img_path=os.listdir(self.path)
def __getitem__(self, idx):
img_name=self.img_path[idx]
img_item_path=os.path.join(self.root_dir,self.label_dir,img_name)
img=Image.open(img_item_path)
label=self.label_dir
return img,label
def __len__(self):
return len(self.img_path)
root_dir="dataset/train"
ants_label_dir="ants"
bees_label_dir="bees"
ants_dataset=MyData(root_dir,ants_label_dir)
bees_dataset=MyData(root_dir,bees_label_dir) #train_dataset = ants_dataset + bees_dataset
img,label=ants_dataset[3]
img.show()
将标签名写入另外一个txt文件中:
import os
root_dir = "dataset/train1"
target_dir = "ants_image"
path = os.path.join(root_dir,target_dir)
img_path = os.listdir(path)
label = target_dir.split('_')[0] #这行代码使用split('_')方法将target_dir字符串以'_'为
# 分隔符分割成一个列表,然后取这个列表的第一个元素
# (索引为0的元素)作为标签名,并将其赋值给label。这里假
#设target_dir的格式为类别名_描述,如"ants_image",则
#label将被赋值为"ants"。
out_dir = "ants_label"
for i in img_path:
file_name = i.split('.jpg')[0] #在循环体内,这行代码将当前文件名(i)以'.jpg'为分隔
# 符分割,并取分割后的第一个元素(即去掉文件扩展名后的
#文件名),然后将其赋值给file_name。
with open(os.path.join(root_dir,out_dir,"{}.txt".format(file_name)),'w')as f:
#s.path.join函数用于将多个路径组件合并成一个路径,这
#里它将root_dir(根目录)、out_dir(输出目录名)和
#通过格式化字符串生成的文件名(扩展名为.txt)合并成一
#个完整的文件路径
f.write(label)
加入文件后缀名:
file_name = "example"
new_file_name = "{}.txt".format(file_name)
print(new_file_name)
#输出结果
example.txt