尝试将图像像素数据放入熊猫数据框中以调整PCA。我认为我可以使用它,但是由于某种原因,该布局已关闭。当我运行以下代码时,我得到以下结果:
Task.Run(async () =>
{
while (await call.ResponseStream.MoveNext(default(CancellationToken)))
{
foreach (var result in call.ResponseStream.Current.Results)
{
subject.OnNext(result);
}
}
});
#read in image
img = cv2.imread('/Volumes/EXTERNAL/Stitched-Photos-for-Chris/p7_0015_20161005-949am-75m-pass-1.jpg.png',1)
row,col = img.shape[:2]
#print(row , col)
#get a unique pixel ID for each pixel
pixel = ['pixel-' + str(i) for i in range(0,row*col)]
bBand = ['bBand']
gBand = ['gBand']
rBand = ['rBand']
data = pd.DataFrame(columns=[bBand,gBand,rBand],index = pixel)
#populate data for each band
b,g,r = cv2.split(img)
data.loc[pixel,'bBand'] = b.flat[:]
data.loc[pixel,'gBand'] = g.flat[:]
data.loc[pixel,'rBand'] = r.flat[:]
print(data.head())
试图找出列中多余的gBand和rBand是我在某个地方出现的发行者或错误。谢谢你的帮助。
答案 0 :(得分:3)
您似乎通过将列设为列表来错误地创建了列
尝试:
pixel = ['pixel-' + str(i) for i in range(0,row*col)]
data = pd.DataFrame(columns=['bBand','gBand','rBand'],index = pixel)
#populate data for each band
b,g,r = cv2.split(img)
data.loc[pixel,'bBand'] = b.flat[:]
data.loc[pixel,'gBand'] = g.flat[:]
data.loc[pixel,'rBand'] = r.flat[:]
print(data.head())