首页 > 解决方案 > CSV 类阅读器没有获得实际图像

问题描述

我有一个 CSV 文件阅读器,它读取一个包含一列的 csv 文件并获取有关图像的数据,例如其标签。经过大量调试后,我发现有关图像的所有数据都已读取,但我缺少实际的获取图像部分,因此目前,cv2 将输入显示为黑框。

我不知道该怎么做才能做到这一点,需要一些帮助

下面是我的 CSV 阅读器

def __init__(self, csvPath, imageHeight, imageWidth, transform = None):
    """
    Arguments:
        A CSV File Path
        Path to Image Foldr
        Extension of Images
        PIL Transforms
    """
    self.dataFromCSV = pD.read_csv(csvPath)
    self.dataLabels = nP.asarray(self.dataFromCSV.iloc[:, 0])
    self.imageHeight = imageHeight
    self.imageWidth = imageWidth
    self.transform = transform

def __getitem__(self, index):
    singleImageLabel = self.dataLabels[index]
    imagePath = singleImageLabel.split(";")[0]
    print ('Path: ' + str(imagePath))
    originalImage = cv2.imread(imagePath)
    cv2.imshow('IMAGE', originalImage)

    # Create an Empty Numpy Array to Fill
    imageAsNumpy = nP.ones((32, 32), dtype = 'uint8')

    # Fill the Numpy Array with Data from Pandas DF
    for i in range(1):
        rowPosition = (i-1) // self.imageHeight
        columnPosition = (i-1) % self.imageWidth
        indexFirst = self.dataFromCSV.iloc[index][i].split(";")[3]
        indexLast = self.dataFromCSV.iloc[index][i].split(";")[6]
        imageAsNumpy[rowPosition][columnPosition] = indexFirst + indexLast
        print ('LABEL: ' + str(singleImageLabel))
        cv2.imshow('INPUT',imageAsNumpy)
        cv2.waitKey(0)
        cv2.destroyAllWindows()

    # Convert Image from Numpy Array to PIL Image, Mode 'L' is for Grayscale
    imageAsImage = Image.fromarray(imageAsNumpy)
    imageAsImage = imageAsImage.convert('1')

    # Transform Image to Tensor
    if self.transform is not None:
        imageAsTensor = self.transform(imageAsImage)

    # Transform Label to Tensor
    labelAsLabel = int(singleImageLabel.split(";")[7])
    labelAsTensor = torch.from_numpy(nP.array(labelAsLabel))
    # print ('Target: ' + str(labelAsTensor))

    # Return Image & the Label
    return (imageAsTensor, labelAsLabel)

def __len__(self):
    return len(self.dataFromCSV.index)

标签: pythoncsvpytorch

解决方案


推荐阅读