python - 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)
解决方案
推荐阅读
- python - 我们可以安排 Selenium(Python) 程序在 Windows 中每 5 分钟运行一次吗?
- grid - TailwindCSS:如何在网格中从右侧添加元素?
- authentication - 成功登录后,我想重定向到我登录前的屏幕。getLoginRedirect() 不起作用
- c++ - 在 CPP 控制台中打印彩色 ascii 艺术
- javascript - 根据所选的下拉城市显示 google 地方自动完成
- java - 为什么我的最后一个索引不应该有一个值?
- python - 当真正的循环不起作用时在里面增加
- c# - 垂直点的坐标
- json - 在 Nifi 中转换/舍入十进制数
- arrays - C程序使用2个数组计算数字中的每个数字