Put sobel as default edge filter

Default should be archetypal and efficient filter
This commit is contained in:
Bruno Herbelin
2022-06-05 10:19:56 +02:00
parent f8e8d33c61
commit d2e3b854aa
2 changed files with 6 additions and 6 deletions

View File

@@ -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 );
} }

View File

@@ -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;