【问题标题】:Uniform Local Binary Pattern Histogram统一局部二值模式直方图
【发布时间】:2017-05-03 11:44:36
【问题描述】:

我在一个项目中工作,我必须为图像实现局部二进制模式直方图。 我想使用统一本地二进制模式。

0,1,2,3,4,6,7,8,12,14,15,16,24,28,30,31,32,48,56,60,62,63,64,96,112,120,124,126,127,128,129,131,135,143,159,191,192,193,195,199,207,223,224,225,227,231,239,240,241,243,247,248,249,251,252,253,254,255

这些是统一二进制模式的值。有 58 种这样的模式,但我读到统一局部二进制模式直方图的大小为 59。所以我将只考虑统一模式 (58),但我如何计算 59 - 直方图的第一个元素? 请帮忙! 谢谢 ! PS(我对解决这个问题的开放 cv 函数不感兴趣,我只是想了解我是如何计算这个直方图的。)

【问题讨论】:

    标签: c++ image-processing histogram


    【解决方案1】:

    阅读有关本地二进制模式的维基百科条目

    https://en.wikipedia.org/wiki/Local_binary_patterns

    您必须将输入拆分为单元格,然后为单元格中的每个像素导出一个数字,具体取决于它是否大于或小于其 8 连接的邻居。这为您提供了 256 个可能的值,但我们只考虑最多有两个 0-1 转换的像素进行过滤(因此不包括棋盘类型模式)。这就是为什么不是所有值都出现在您的表中的原因,我猜您应该使用最后一个索引来存储所有非“统一”值。

    【讨论】:

    • “我猜你应该使用最后一个索引来存储所有非“统一”值。“是的,我会计算那个位置上的所有非统一模式,对吗?
    • 没错。在非人为、非抖动的图像中,当您围绕目标像素绕一圈时,应该很少有超过一个 0-1 过渡。最后,您只需将少数例外存储在自己的垃圾箱中即可。
    猜你喜欢
    • 1970-01-01
    • 2012-11-23
    • 2018-09-17
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2016-06-28
    相关资源
    最近更新 更多