使用Tensor Flow创建图像分类器时如何使用直方图作为特征?

时间:2018-02-13 03:29:33

标签: python image-processing tensorflow histogram

我还是学生,我正在研究如何在使用Tensor Flow创建图像分类器时使用直方图作为特征(我已经为诗人使用了张量流,但是它的输入是原始图像,现在我想使用直方图作为输入)。我观看了如何使用苹果和橙子作为功能的教程,但现在我正在尝试使用图像的直方图(我使用opencv(python)来提取我的图像的直方图)。

我有2个标签:图像1和图像2.每个标签有自己的60个图像(图像1,有60个图像,图像2有60个图像)。在每个标签中,我有60个直方图,它是2D阵列的形式。

 image1 = [[histogram1], [histogram2], ... [histogram60]]
 image2 = [[histogram1], [histogram2], ... [histogram60]]

在每个直方图中,我有256个值,

 histogram1 = [0,0,0,0,123, 169, ...] 

在我的代码中,当我使用这些直方图作为特征时,我遇到了一个错误,因为它是3 dim-array的形式,当它应该只是< = 2.我写它的方式是这样的(基于TF的教程):

from sklearn import tree
hist = [ [[img1_histogram1], [img1_histogram2], ... [img1_histogram60]], [[img2_histogram1], [img2_histogram2], ... [img2_histogram60]] ]
labels = [1, 2] # 1 for image1, 2 image2
clf = tree.DecisionTreeClassifier()
clf = clf.fit(hist, labels)

print clf.predict([[img1_histogram1]])

在使用Tensor Flow创建图像分类器时,有人可以帮我使用直方图作为功能吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

在特征向量中表示RGB直方图的一种方法是从中提取相关值。

因此直方图将存储为: redMean,greenMean,blueMean,redStdDev,greenStdDev,blueStdDev

我用这种方法来表示蝴蝶的颜色配置文件。