From d2e3b854aa4a1f0f4e60b60b8824113dc2fe2ab1 Mon Sep 17 00:00:00 2001 From: Bruno Herbelin Date: Sun, 5 Jun 2022 10:19:56 +0200 Subject: [PATCH] Put sobel as default edge filter Default should be archetypal and efficient filter --- ImageFilter.cpp | 8 ++++---- ImageFilter.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ImageFilter.cpp b/ImageFilter.cpp index 515a17e..ac0bcbc 100644 --- a/ImageFilter.cpp +++ b/ImageFilter.cpp @@ -629,13 +629,13 @@ void SharpenFilter::accept (Visitor& v) //////////////////////////////////////// const char* EdgeFilter::method_label[EdgeFilter::EDGE_INVALID] = { - "Thresholding", "Sobel", "Freichen", "Contour" + "Sobel", "Freichen", "Thresholding", "Contour" }; 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("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} }), }; @@ -645,7 +645,7 @@ EdgeFilter::EdgeFilter (): ImageFilter(), method_(EDGE_INVALID) 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_] ); } @@ -653,7 +653,7 @@ void EdgeFilter::draw (FrameBuffer *input) { // Default if (method_ == EDGE_INVALID) - setMethod( EDGE_THRESHOLD ); + setMethod( EDGE_SOBEL ); ImageFilter::draw( input ); } diff --git a/ImageFilter.h b/ImageFilter.h index 4e30508..48d5e4a 100644 --- a/ImageFilter.h +++ b/ImageFilter.h @@ -176,9 +176,9 @@ public: // Algorithms used for edge detection typedef enum { - EDGE_THRESHOLD = 0, - EDGE_SOBEL, + EDGE_SOBEL = 0, EDGE_FREICHEN, + EDGE_THRESHOLD, EDGE_CONTOUR, EDGE_INVALID } EdgeMethod;