计算机视觉之纹理

一、局部纹理表示(每个像素点形成一个纹理描述
找到纹理基元,纹理基元通常是由子元素构成的(点和条形),可以使用不同方向、尺度、相位的滤波寻找子元素,再通过找到的子元素的近邻来描述图像中的每个点(高斯滤波可实现)。

算法:
1.选定n个关于子元素的滤波器(不同尺度、方向)
2.对图像的每个像素点计算不同滤波器的响应
3.对滤波响应采用半波归一化,计算max(0,IF)和max(0,-IF)
4.计算局部汇总:对所有的滤波响应做高斯滤波,尺度为基滤波器的2倍

二、基于图像区域的纹理表示(池化纹理表示)
如果直接使用基于局部的特征表示构建图像区域的特征,向量维数太大了;如果通过直方图表示区域特征的话,cell个数太多了,因为每个像素的纹理表示多少有些不同。

1.构建词典
一个图像提取多个patch,最简单情况patch就用像素值表示
根据训练集图像的patch(向量)创建词典,可以利用k-means(设定k个数,初始化k个聚类中心,依次计算图像与k个聚类中心距离,将其聚到最近的类中,根据聚类结果更新聚类中心,迭代进行,直到聚类中心不发生大的变化)
学习词典(聚类)过程:
在这里插入图片描述
2.提取给定图像区域的纹理
对于给定的图像块,提取多个patch像素向量表示。
与词典中的所有向量做距离运算进行聚类,找到最近距离像素点所在的类并获取纹理类型标记,将其标记加入该图像区域所对应的纹理类型直方图中。
计算完给定图像块的所有patch后便可得该图像块的纹理表示。

三、纹理合成(边界上总有没有合成值)
采取正方形近邻:
从样本图像中随机选择一个小方块像素
将样本图像值插入到合成图像中
直到要合成图像每个位置都有值
对于合成图像边界上没有合成的地方
用样本图像匹配该地方的近邻填入值

猜你喜欢

转载自blog.csdn.net/m0_37937932/article/details/85843745