mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-12 18:59:59 +01:00
Put sobel as default edge filter
Default should be archetypal and efficient filter
This commit is contained in:
@@ -629,13 +629,13 @@ void SharpenFilter::accept (Visitor& v)
|
|||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
|
|
||||||
const char* EdgeFilter::method_label[EdgeFilter::EDGE_INVALID] = {
|
const char* EdgeFilter::method_label[EdgeFilter::EDGE_INVALID] = {
|
||||||
"Thresholding", "Sobel", "Freichen", "Contour"
|
"Sobel", "Freichen", "Thresholding", "Contour"
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector< FilteringProgram > EdgeFilter::programs_ = {
|
std::vector< FilteringProgram > EdgeFilter::programs_ = {
|
||||||
FilteringProgram("Edge", "shaders/filters/bilinear.glsl", "shaders/filters/edge.glsl", { { "Threshold", 0.5} }),
|
|
||||||
FilteringProgram("Sobel", "shaders/filters/sobel.glsl", "", { { "Factor", 0.5} }),
|
FilteringProgram("Sobel", "shaders/filters/sobel.glsl", "", { { "Factor", 0.5} }),
|
||||||
FilteringProgram("Freichen", "shaders/filters/freichen.glsl", "", { { "Factor", 0.5} }),
|
FilteringProgram("Freichen", "shaders/filters/freichen.glsl", "", { { "Factor", 0.5} }),
|
||||||
|
FilteringProgram("Edge", "shaders/filters/bilinear.glsl", "shaders/filters/edge.glsl", { { "Threshold", 0.5} }),
|
||||||
FilteringProgram("Contour", "shaders/filters/sharpen_1.glsl", "shaders/filters/contour_2.glsl", { { "Amount", 0.5} }),
|
FilteringProgram("Contour", "shaders/filters/sharpen_1.glsl", "shaders/filters/contour_2.glsl", { { "Amount", 0.5} }),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -645,7 +645,7 @@ EdgeFilter::EdgeFilter (): ImageFilter(), method_(EDGE_INVALID)
|
|||||||
|
|
||||||
void EdgeFilter::setMethod(int method)
|
void EdgeFilter::setMethod(int method)
|
||||||
{
|
{
|
||||||
method_ = (EdgeMethod) CLAMP(method, EDGE_THRESHOLD, EDGE_INVALID-1);
|
method_ = (EdgeMethod) CLAMP(method, EDGE_SOBEL, EDGE_INVALID-1);
|
||||||
setProgram( programs_[ (int) method_] );
|
setProgram( programs_[ (int) method_] );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,7 +653,7 @@ void EdgeFilter::draw (FrameBuffer *input)
|
|||||||
{
|
{
|
||||||
// Default
|
// Default
|
||||||
if (method_ == EDGE_INVALID)
|
if (method_ == EDGE_INVALID)
|
||||||
setMethod( EDGE_THRESHOLD );
|
setMethod( EDGE_SOBEL );
|
||||||
|
|
||||||
ImageFilter::draw( input );
|
ImageFilter::draw( input );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,9 +176,9 @@ public:
|
|||||||
|
|
||||||
// Algorithms used for edge detection
|
// Algorithms used for edge detection
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EDGE_THRESHOLD = 0,
|
EDGE_SOBEL = 0,
|
||||||
EDGE_SOBEL,
|
|
||||||
EDGE_FREICHEN,
|
EDGE_FREICHEN,
|
||||||
|
EDGE_THRESHOLD,
|
||||||
EDGE_CONTOUR,
|
EDGE_CONTOUR,
|
||||||
EDGE_INVALID
|
EDGE_INVALID
|
||||||
} EdgeMethod;
|
} EdgeMethod;
|
||||||
|
|||||||
Reference in New Issue
Block a user