这个函数有啥作用?与钳位值有关吗?
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 是指数函数)。
【讨论】:
干杯,这正是我需要知道的。您能否提供任何资源,或者我可以在哪里了解图形过滤器或不同过滤器的一些示例?以上是关于这个函数有啥作用?与钳位值有关吗?的主要内容,如果未能解决你的问题,请参考以下文章