转换Pandas数据帧中的附加图像列表

时间:2016-08-26 12:08:49

标签: python pandas dataframe scipy

我有一个列表,是我在追加文件夹中的图像后创建的

samples=[]    
for filename in glob.glob(path + '/*.png'):
    samples.append(misc.imread(filename))

列表的样本看起来像

[array([[ 4,  4,  4, ...,  5,  5,  4],
   [ 5,  5,  5, ...,  6,  6,  5],
   [ 5,  5,  5, ...,  6,  6,  4],
   ..., 
   [12, 12, 11, ..., 12, 12,  7],
   [12, 11, 11, ..., 13, 12,  7],
   [11, 11, 10, ..., 12, 12,  7]], dtype=uint8), array([[ 4,  4,  4, ...,  7,  7,  6],
   [ 5,  5,  5, ...,  6,  6,  4],
   [ 5,  5,  5, ...,  7,  7,  5]], dtype=uint8)]

如何在Pandas DataFrame中转换图片的尺寸。当我尝试用

做的时候
df=pd.DataFrame(samples)

它给了我一个错误

ValueError: Must pass 2-d input

请建议 - 我将非常感谢您的帮助

2 个答案:

答案 0 :(得分:0)

尝试将其转换为pandas panel

import cv2
img = cv2.imread('path/Picture_1.png')
imgPanel = pd.Panel(img)

有关详细信息,请参阅:Panel- Introductionn-dimensional Panel (Experimental)Cookbook- PanelPanel-nd cookbook

答案 1 :(得分:0)

尝试在附加图像时添加.reshape(-1)。

for filename in glob.glob(path + '/*.png'):
    samples.append(misc.imread(filename).reshape(-1))

df = pd.DataFrame.from_records(samples)

如果你想要3d版,请阅读 Reshaping a numpy array in python