Textural Features for Image Classification

这几天看了HARALICK在1973年写的这篇论文,学到了挺多知识。

这篇文章对于物体纹理特征提取是奠基性的,非常赞!!


我觉得最主要学到了两个方面知识。


第一,是提取纹理。

文中介绍了(中文大家都叫灰度共生矩阵),比如下面是我的4*4图片,有且只有4种灰度

0 0 1 1
0 0 1 1
0 2 2 2
2 2 3 3
那么,我就可以提取出灰度共生矩阵,注意,灰度共生矩阵是个方阵,长宽是灰度的种类。

那么我就有4个方向的灰度共生矩阵,(很好理解)分别是水平,垂直,45度和90度。

比如下面是我的水平方向灰度共生矩阵

4 2 1 0
2 4 0 0
1 0 6 1
0 0 1 2
发现没有,这是一个对称矩阵!

那么上面的数字是怎么来的呢?比如第2行第1列我们用(1,0)表示,这里不写成(2,1)因为灰度是0-3. (1,0)的值为什么是2,代表什么呢?

(1,0)代表左边是灰度1,右边是灰度0的这样的有几种,看原图,数一下是不是2个?在第一行第三列和第三行第一列。

那么(0,0),(1,1)为什么是4呢?先看(0,0),好像只有2个,要记住,这是对称矩阵,(0,0),(1,1),(2,2)这种还要乘2的,

所以,对角线是2的倍数。

我再画出90度的帮助理解~~

6 0 2 0
0 4 2 0
2 2 2 2
0 0 2 0

提取灰度共生矩阵是非常简单的事情~~


哦,对了,我们上面的例子都是灰度相邻,作者在文中还定义了一个d,不过一般都取1。那么d代表什么呢?

如果d取2,角度是0度,那么(1,2)就表示灰度1在灰度2左边,并且距离为2这样一种灰度共生矩阵提取方法。

好了,我们现在有了灰度共生矩阵,下面就可以提取纹理了。

作者在文中一共定义了28种纹理,其实也可以当作14种。

我在这里随便举一种吧,处理前,我们要先对灰度共生矩阵作归一化。原矩阵为M(i,j),归一化后为P(i,j),原矩阵所有数字之和为sum.

P(i,j) = M(i,j)/sum

我们所有的计算都是基于P矩阵的。

有一种纹理叫二阶角矩

计算方法是f = SUM(P(i)(j)^2),这是最好计算的一种,然后我们有4个方向的值,平均一下,就提取出一种特征了,另外的特征计算方法在论文种都有。


假设我们有天空,绿地,沙滩三种分类,还有training set 和 data set.

下面我们就先作训练,我们已经有了训练集了,接下来要怎么办呢?


我也是最近刚接触,会的就是logistic回归模型和Fisher分类算法,他们一开始都是基于两类分类的,当然也都能作用于多类。

如果大家不会logistic,可以看下斯坦福的机器学习课程,Fisher分类是1936年提出来的,需要对矩阵比较熟悉。

如果有不懂的地方,大家可以一起探讨^^


我再多说一点,如果用logistic作多类,可以这样做。

假如我们有A,B,C三类,分别拿 A,BC     B,AC    C,AB去做。

比如A,BC  那么我们就把A设为1,BC类别为0,这样我们就有h1(x),同理有h2(x),h3(x)

新的一个物体a过来时,分别算一算h1,h2,h3  哪个值高就算哪个分类

你可能感兴趣的:(机器学习,计算机视觉,纹理特征,HARALICK,灰度共生矩阵)