Add SCIE-Lab error metric. Work in progress.
This commit is contained in:
@ -7,6 +7,7 @@ SET(IMAGE_SRCS
|
||||
DirectDrawSurface.h DirectDrawSurface.cpp
|
||||
Filter.h Filter.cpp
|
||||
FloatImage.h FloatImage.cpp
|
||||
ErrorMetric.h ErrorMetric.cpp
|
||||
Image.h Image.cpp
|
||||
ImageIO.h ImageIO.cpp
|
||||
NormalMap.h NormalMap.cpp
|
||||
|
@ -265,6 +265,19 @@ void KaiserFilter::setParameters(float alpha, float stretch)
|
||||
this->stretch = stretch;
|
||||
}
|
||||
|
||||
GaussianFilter::GaussianFilter(float w) : Filter(w) { setParameters(1); }
|
||||
|
||||
float GaussianFilter::evaluate(float x) const
|
||||
{
|
||||
// variance = sigma^2
|
||||
return (1.0f / sqrtf(2 * PI * variance)) * expf(-x*x / (2 * variance));
|
||||
}
|
||||
|
||||
void GaussianFilter::setParameters(float variance)
|
||||
{
|
||||
this->variance = variance;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// Ctor.
|
||||
|
@ -116,6 +116,19 @@ namespace nv
|
||||
float stretch;
|
||||
};
|
||||
|
||||
// Gaussian filter.
|
||||
class GaussianFilter : public Filter
|
||||
{
|
||||
public:
|
||||
GaussianFilter(float w);
|
||||
virtual float evaluate(float x) const;
|
||||
|
||||
void setParameters(float variance);
|
||||
|
||||
private:
|
||||
float variance;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/// A 1D kernel. Used to precompute filter weights.
|
||||
|
Reference in New Issue
Block a user