如何检测纹理中断

4
假设我们有许多彩色图像,这些图像都是某种纹理模式的示例。很少情况下会出现一些异物“破坏”了这种纹理。什么是检测这些罕见异常的最佳方法?
我考虑训练CNN,但好的例子远远超过坏的例子,因此我有些怀疑。我开始研究灰度共生矩阵(GLCM)和局部二值模式(LBP),但我认为颜色信息可以在确定破坏发生的情况下起重要作用。我能否从这些提取的特征(GLCM或LBP)中找到分布,并计算新图像属于该分布的概率?
谢谢你的帮助!

1
你可以分享一些示例图片吗? - Tonechas
很抱歉,我无法提供更具体的关于问题的信息。 - Brad Flynn
1
没有更多信息很难回答这个问题,但你看过Law的纹理测量吗?虽然有点老但可能很有用。任何技术的适用性都取决于你的应用。是自然物体/场景还是人造的?是来自相机的实时图像,还是分辨率/质量不同的图像文件?如果不能透露细节,那么可以考虑在当地工程图书馆花一天时间查阅教科书、论文和会议论文(这些通常在线上需要付费才能访问)。我曾经几次发现了鲜为人知的书籍,帮助我解决了奇怪的问题。 - Rethunk
1个回答

4

如果没有看到一些示例图像,很难弄清楚您的问题。原则上,可以使用各种方法来检测纹理破坏,包括GLCM特征、LBPs、Law's掩模、矢量量化等。测量局部熵是一种可能的方法。请考虑下面的图像,在其中我们可以清楚地区分两种类型的纹理:

square textured object on a textured background

以下代码片段读取图像,在圆形邻域或给定半径 25 上计算每个像素的局部熵,并显示结果:
from skimage import io
from skimage.filters.rank import entropy
from skimage.morphology import disk

img = io.imread('https://istack.dev59.com/Wv74a.webp')
R = 25
filtered = entropy(img, disk(R))
io.imshow(filtered)

从熵图中可以清晰地看出,局部熵值可用于检测纹理干扰。

local entropy values


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接