我对此很陌生;我尝试将纹理分类为有缺陷或无缺陷。我使用了带有Matlab的Gabor滤波器组,它输出了图像的Gabor特征的列向量。我有一组无缺陷的图像和有缺陷的图像。
我的问题是,我现在可以用这个(或这些)特征向量对纹理进行分类?我已经阅读了很多类型的分类,但是找不到任何类似的实现类型来帮助我了解我正在做什么。非常感谢。
答案 0 :(得分:1)
如果您提取了特征向量,还有很多方法可以使用。
例如,您可以对两个班级的样本使用svm方法。
更简单的方法包括最近邻居,最近的质心等
编辑:
我认为这会是一个评论,但它太大而不适合。
关于样品的可分离性:
答案 1 :(得分:1)
您可以使用支持向量机(SVM)或神经网络。 SVM被广泛使用并且给出了很好的结果。一个如何在Matlab中使用它的例子。
让我们说training
矩阵包含所有训练集图像的Gabor特征,其中每行对应于图像的特征向量(转置列向量)。让我们假设前25个是无缺陷的,接下来25个是有缺陷的。现在,您需要创建一个group
矩阵,告诉SVM哪些是有缺陷的,哪些不是。所以,
group = [ones(25,1); -1*ones(25,1)]; // non-defective = 1, defective = -1
SVMStruct = svmtrain(training, group);
SVMStruct
是支持向量,您将用它来分类'测试'数据。让我们说testing
矩阵包含Gabor功能,如前所述。
results = svmclassify(SVMStruct, testing);
results
是最终决策矩阵,其中包含1或-1,具体取决于所做的决定。