paddle dataset

paddle实现图像旋转

python 复制代码
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
from paddle.vision.transforms import  functional as F
import cv2

image=cv2.imread('./1.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

# 图像旋转 opencv
# imgR90 = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE)
# # imgR90 = np.rot90(image, 1)  # numpy 矩阵旋转 90*1=90 度
# cv2.imshow('image',imgR90)
# cv2.waitKey()

# # 图像旋转 使用PIL
# img=Image.fromarray(image)
# img=img.rotate(180)
# img.show()
# img=np.array(img)
# plt.imshow(img)
# plt.show()
# cv2.imshow('img',img)  # opencv显示的格式是bgr 其他的都是rgb
# cv2.waitKey()

# 图像旋转 使用paddle
image=Image.fromarray(image)
rotate_img=F.rotate(image,90)
# rotate_img.show()
image=np.array(rotate_img)
plt.imshow(image)
plt.show()

paddle实现数据增强

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt
from paddle.vision import Compose,RandomHorizontalFlip,RandomCrop,Normalize,RandomRotation,RandomVerticalFlip,ColorJitter

transfrom=Compose([
    # Normalize(mean=[125],std=[125],data_format="HWC"),
    RandomHorizontalFlip(1),
    RandomRotation(180),
    RandomCrop(200),
    RandomVerticalFlip(0.5),
    ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0)  #图像的亮度、对比度、饱和度和色调

])
while(True):
    image = cv2.imread('1.jpg')
    # image=np.expand_dims(image,axis=2)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image = transfrom(image)
    # image=np.clip(image,0,1)
    plt.imshow(image)
    plt.show()

dataset

python 复制代码
import os
import cv2
import numpy as np
from paddle.io import Dataset
from paddle.vision.transforms import Normalize,Compose,RandomHorizontalFlip,ColorJitter,CenterCrop,RandomVerticalFlip,RandomRotation
from matplotlib import pyplot as plt

class MyDataset(Dataset):
    def __init__(self,data_dir,data_txt,transform=None):
        super().__init__()
        self.data_list=[]
        self.data_dir=data_dir
        with open(data_txt,encoding='utf-8') as f:
            for line in f.readlines():
                image_path=line.strip()
                self.data_list.append(image_path)
        self.transform=transform
    def __getitem__(self, index):
        index=index%len(self.data_list)
        image_path=self.data_list[index]
        image_path=os.path.join(self.data_dir,image_path)
        image=cv2.imread(image_path)
        image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

        # 飞桨训练格式默认为float32
        image=image.astype('float32')
        if self.transform is not None:
            # print('h')
            image=self.transform(image)
        return image
    def __len__(self):
        return len(self.data_list)

# 定义数据预处理方法
transform=Compose(
    [
        RandomHorizontalFlip(1),
        RandomVerticalFlip(1),
        RandomRotation(360)
        # Normalize(mean=[125],std=[125],data_format='CHW'),
        # ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5),
        # CenterCrop(100)
    ]
)

dataset=MyDataset(data_dir='./fruit-detection/JPEGImages',data_txt='./fruit-detection/ImageSets/Main/train.txt',transform=transform)
image=dataset[1]
# image=np.clip(image,0,1)
print(type(image))
plt.imshow(image.astype(np.uint8))
plt.show()
相关推荐
知识靠谱2 分钟前
【深度学习】Transformer入门:通俗易懂的介绍
人工智能·深度学习·transformer
刽子手发艺1 小时前
Selenium+OpenCV处理滑块验证问题
opencv·selenium·webpack
Luis Li 的猫猫2 小时前
深度学习中的知识蒸馏
人工智能·经验分享·深度学习·学习·算法
木觞清4 小时前
PyTorch与TensorFlow的对比:哪个框架更适合你的项目?
人工智能·pytorch·tensorflow
wyg_0311137 小时前
用deepseek学大模型04-模型可视化与数据可视化
人工智能·机器学习·信息可视化
陈敬雷-充电了么-CEO兼CTO8 小时前
DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
人工智能·神经网络·自然语言处理·chatgpt·大模型·aigc·deepseek
南风过闲庭9 小时前
人工智能泡沫效应
大数据·人工智能·科技·搜索引擎·百度·ai
我是一个对称矩阵9 小时前
YOLOv5-Seg 深度解析:与 YOLOv5 检测模型的区别
人工智能·yolo·目标跟踪
AomanHao9 小时前
图像质量评价指标-UCIQE-UIQM
图像处理·人工智能·计算机视觉·评价指标
MYT_flyflyfly9 小时前
计算机视觉-尺度不变区域
人工智能·计算机视觉