我读过很多文章说剪辑限制是CDF斜率的限制。但是在OpenCV中,该参数可以设置为0~999...,我不知道这个参数的最大值,PDF的总和不是等于1吗?斜率怎么可能大于1?剪辑限制的另一种说法是,这是对每个灰度级计数的限制,例如,如果我将 tile 设置为 (8,8),则该 tile 中的任何灰度级都不可能超过 64 像素,但是如果我设置限制超过64,结果仍在变化。请以任何观点启发我。
小智 5
所以,剪辑限制的实现方式如下:
clipped = clipped + pdf[i] - clipLimit;裁剪”了 4 处强度为 0 的像素计数
,裁剪开始的地方在 0。然后裁剪 = 0 + 26 - 4 = 22。代码继续为 PDF(强度 = 1)、PDF(强度 = 2)、...、PDF(强度 = 255) 执行此操作。最后,PDF 的任何单个元素都不会大于 clipLimit,并且多余的像素计数已存储在变量 clipped 中。(就像 fmw42 所说的那样)。从维基百科来看,clipLimit 通常设置在 3 到 4 之间。当按照上述方式实现剪辑限制时,直方图中任何元素的最大值都是有限的,因此,任意两个相邻元素之间的最大斜率(即强度变化)直方图中的元素是有限的。
至于你的问题,PDF的总和确实是1。但是,这里的数组PDF存储的是计数,即PDF的分子。因此,对于大小为 1920 x 1080 的图像,如果实际 PDF 是
代码的实现请参考OpenCV源代码。作为脚注,我对重新分发的实现做了一些简化,但希望它应该更容易理解。
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |