Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 使用OpenCV和Gabor过滤器比较纹理_Image_Opencv_Image Processing_Computer Vision - Fatal编程技术网

Image 使用OpenCV和Gabor过滤器比较纹理

Image 使用OpenCV和Gabor过滤器比较纹理,image,opencv,image-processing,computer-vision,Image,Opencv,Image Processing,Computer Vision,作为一个项目的一部分,我试图测量从图像中采样的两个纹理有多相似。(我取两个约40 x 40 px的正方形样品) 采集样本后,我将它们传递给一组Gabor滤波器(具有2个滤波器大小和6个方向),因此现在每个样本有12个滤波器输出 我们的目标是计算一个度量值,它告诉我们两个纹理的相似程度,如果两个样本是木材或砖,度量值较低(差异较小),但如果一个样本是岩石,另一个是织物,则度量值应较高(纹理非常不同) 问题是:如何使用此输出测量纹理差异? 有人建议我为每个样本创建一个输出分布,然后测量两个分布之间的

作为一个项目的一部分,我试图测量从图像中采样的两个纹理有多相似。(我取两个约40 x 40 px的正方形样品)

采集样本后,我将它们传递给一组Gabor滤波器(具有2个滤波器大小和6个方向),因此现在每个样本有12个滤波器输出

我们的目标是计算一个度量值,它告诉我们两个纹理的相似程度,如果两个样本是木材或砖,度量值较低(差异较小),但如果一个样本是岩石,另一个是织物,则度量值应较高(纹理非常不同)

问题是:如何使用此输出测量纹理差异? 有人建议我为每个样本创建一个输出分布,然后测量两个分布之间的距离,但我不知道如何做到这一点

过滤器看起来有点像(不是很硬):

输出看起来像这样(我借用了这个图像作为示例)


编码纹理的基本方法是计算窗口上的直方图过滤器响应。然后使用直方图比较纹理。一个好的开始方式是看一看


LBP直方图的简化解释:输入图像中的每个像素由其3x3邻域描述。邻域通过阈值转换为索引[0255]。然后索引在柱状图中标识箱子

我知道这是一个老话题,但这个页面可能会帮助未来的访问者:


这是Python中的一个示例,它使用过滤图像的平均值和方差作为区分特征(请参阅函数“compute_feats”)。比较的标准只是最小平方误差(请参阅函数“匹配”)。

我从论文中识别出您的输出图片(Han,Lee,2012)。在本文中,他们建议对Gabor滤波输出图像进行二进制编码(第4.2.2.3节),然后使用汉明距离(实际上是略微改变的距离,因此计算对旋转和平移具有鲁棒性,请参见第4.3节)将一幅图像的二进制编码向量与另一幅图像进行比较,但你给我指出了正确的方向。谢谢