我正在使用NUAA数据集,并试图分类真实的和欺骗数据集。现在我得到的输入是三维的。我无法将其转换为二维。
class to_LBP():
'''class to calculate LBP'''
def __init__(self, n_points_radius, method):
self.n_points=n_points_radius
self.method=method
self.channels=len(self.n_points)
self.kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
def __call__(self, sample):
w, h=sample.size
temp=np.zeros((self.channels, w, h))
# print("sample", sample)
# print(type(sample))
image= np.array(sample)
# print(image)
print("image.shape",image.shape)
image=cv2.filter2D(image, -1, self.kernel)
for idx, values in enumerate(self.n_points):
lbp=local_binary_pattern(image, values[0], values[1], self.method)
temp[idx]=lbp
return (temp, image)
1条答案
按热度按时间niknxzdl1#
如果要将此3D数组转换为2D数组,可以使用
flatten()
将每个通道展平,然后使用np.hstack()
水平连接生成的1D数组。以下是如何执行此操作的示例:注意:得到的展平阵列将具有
self.channels * w * h
的长度,这是每个通道的LBP特征的数量。