这个函数有啥作用?与钳位值有关吗?

Posted

技术标签:

【中文标题】这个函数有啥作用?与钳位值有关吗?【英文标题】:What does this function do? Something to do with clamping values?这个函数有什么作用?与钳位值有关吗? 【发布时间】:2013-11-25 10:06:36 【问题描述】:

很久以前,我在某个地方发现了这个功能。我不完全知道它在做什么。我用它来处理单纯形噪声输出(灰度值在 0 到 255 之间),但想更好地理解它。

int ExponentFilter(int value, int cover, double sharpness)

    int c = value - (255 - cover);
    if(c < 0)
        c = 0;
    return 255 - ((std::pow(sharpness,c)) * 255);

我是这样使用的:

ExponentFilter(n,140,0.98f)

其中 n 是我的值,介于 0 和 255 之间。

【问题讨论】:

您是否尝试过使用各种测试数据运行它以观察其行为? 好吧 - 你已经有了函数,只需绘制它。 @Sean 感谢您的回答。是的,我有;正如我所说,我一直在将它用于从单纯形噪声生成的灰度纹理上,所以我知道它在做什么。但是,我不明白 0 和 255 是否出于某种原因被硬编码,或者它们是否可能是变量。我不明白这个函数是什么,“指数过滤器”是它的正确名称吗? @Hulk 感谢您花时间回答。数学不是我的强项。我如何绘制一个函数,更重要的是,这样做会告诉我什么? 好吧,例如,您可以扫描您的 255 个输入值(只是一个 for 循环),存储输出结果,将它们放入表格计算程序的列中(例如.Excel) 并创建图表。然后你会一眼看出它对每个输入的作用。 【参考方案1】:

cover 是信号被完全切断的“屏蔽”程度。 cover 140 表示 140 个最高(最亮)值 (116-255) 可以导致输出 > 0。

sharpness 描述了光线衰减的速度。 0,98 表示光的衰减速度大约是原来的两倍,但衰减效果不是线性的,对于较暗的区域会减弱。

我希望这个滤镜可以使曝光过度的图像变暗和锐化。

Exponentfilter 是一个合适的名称,因为锐度函数使用指数(pow 是指数函数)。

【讨论】:

干杯,这正是我需要知道的。您能否提供任何资源,或者我可以在哪里了解图形过滤器或不同过滤器的一些示例?

以上是关于这个函数有啥作用?与钳位值有关吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenCv Mat 中钳位值的最有效方法

在这个例子中美元符号有啥作用?

Primefaces 中的 PF 功能有啥作用?

稳压二极管稳压和钳位是一个意思吗?

java中的 validate()有啥作用

这个代码片段有啥作用?