【发布时间】: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) 并创建图表。然后你会一眼看出它对每个输入的作用。
标签: c++ image-processing exponent