From b187e0037a8722e3f7551ec827df818bd298ee44 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 15 Feb 2026 16:50:08 +0100 Subject: [PATCH 1/7] adding the filter start (no filterspesific code yet) --- .../config/image_filtering_params.yaml | 2 ++ .../lib/filters/all_filters.hpp | 1 + .../lib/filters/temporal_noise.hpp | 30 +++++++++++++++++++ .../include/image_filtering/lib/typedef.hpp | 2 ++ .../src/ros/image_filtering_ros.cpp | 8 +++++ 5 files changed, 43 insertions(+) create mode 100644 image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index 5e90fe4..e310bba 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -40,3 +40,5 @@ threshold: 20. # in percent maxval: 255. invert: true + temporal_noise: + dontknow: 10 diff --git a/image-filtering/include/image_filtering/lib/filters/all_filters.hpp b/image-filtering/include/image_filtering/lib/filters/all_filters.hpp index 71a4cc6..178de8d 100644 --- a/image-filtering/include/image_filtering/lib/filters/all_filters.hpp +++ b/image-filtering/include/image_filtering/lib/filters/all_filters.hpp @@ -1,6 +1,7 @@ #ifndef IMAGE_FILTERING__LIB__FILTERS__ALL_FILTERS_HPP_ #define IMAGE_FILTERING__LIB__FILTERS__ALL_FILTERS_HPP_ +#include "image_filtering/lib/filters/temporal_noise.hpp" #include "image_filtering/lib/filters/binary_threshold.hpp" #include "image_filtering/lib/filters/dilation.hpp" #include "image_filtering/lib/filters/ebus.hpp" diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp new file mode 100644 index 0000000..a61360f --- /dev/null +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -0,0 +1,30 @@ +#ifndef IMAGE_FILTERING__LIB__FILTERS__SONAR_NOISE_HPP_ +#define IMAGE_FILTERING__LIB__FILTERS__SONAR_NOIse_HPP_ + +#include "abstract_filter_class.hpp" +#include "image_filtering/lib/utilities.hpp" + +///////////////////////////// +// Sonar noise +///////////////////////////// +namespace vortex::image_filtering { +struct TemporalNoiseParams { + int dontknow; +}; + +class TemporalNoise : public Filter { + public: + explicit TemporalNoise(TemporalNoiseParams params) : filter_params_(params) {} + void apply_filter(const cv::Mat& original, + cv::Mat& filtered) const override; + + private: + TemporalNoiseParams filter_params_; +}; + +inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { + // TODO: finish him + cv::flip(original, filtered, 1); +} +} // namespace vortex::image_filtering +#endif // IMAGE_FILTERING__LIB__FILTERS__SONAR_NOISE_HPP_ diff --git a/image-filtering/include/image_filtering/lib/typedef.hpp b/image-filtering/include/image_filtering/lib/typedef.hpp index f07e5e6..ad143bc 100644 --- a/image-filtering/include/image_filtering/lib/typedef.hpp +++ b/image-filtering/include/image_filtering/lib/typedef.hpp @@ -22,6 +22,7 @@ enum class FilterType { Overlap, MedianBinary, Binary, + TemporalNoise, Unknown }; @@ -39,6 +40,7 @@ static constexpr std::pair kFilterMap[] = { {"overlap", FilterType::Overlap}, {"median_binary", FilterType::MedianBinary}, {"binary", FilterType::Binary}, + {"temporal_noise", FilterType::TemporalNoise}, {"unknown", FilterType::Unknown}}; diff --git a/image-filtering/src/ros/image_filtering_ros.cpp b/image-filtering/src/ros/image_filtering_ros.cpp index 91720ae..d21007f 100644 --- a/image-filtering/src/ros/image_filtering_ros.cpp +++ b/image-filtering/src/ros/image_filtering_ros.cpp @@ -144,6 +144,14 @@ void ImageFilteringNode::set_filter_params() { filter_ptr_ = std::make_unique(params); break; } + case FilterType::TemporalNoise: { + TemporalNoiseParams params; + params.dontknow = + declare_and_get("filter_params.temporal_noise.dontknow"); + + filter_ptr_ = std::make_unique(params); + break; + } default:; if (filter_type == FilterType::Unknown) { From ca1b2a2abe5bad473bd19241500d00d390f029df Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 24 Feb 2026 13:47:37 +0100 Subject: [PATCH 2/7] Implementing the (just about finished) temporal noize filter --- .../config/image_filtering_params.yaml | 8 +++- .../lib/filters/temporal_noise.hpp | 37 +++++++++++++++++-- .../src/ros/image_filtering_ros.cpp | 12 +++++- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index e310bba..85c9cf2 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -6,7 +6,7 @@ output_encoding: "mono8" filter_params: - filter_type: "otsu" + filter_type: "temporal_noise" flip: flip_code: 1 unsharpening: @@ -41,4 +41,8 @@ maxval: 255. invert: true temporal_noise: - dontknow: 10 + blur_sigma: 4.0 + gamma_auto_correction_weight: 4.0 + erotion_size: 2 + dilation_size: 4 + diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index a61360f..969fb3c 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -10,21 +10,52 @@ namespace vortex::image_filtering { struct TemporalNoiseParams { int dontknow; + double blur_sigma; + double gamma_auto_correction_weight; + + int erotion_size; + int dilation_size; + }; class TemporalNoise : public Filter { public: - explicit TemporalNoise(TemporalNoiseParams params) : filter_params_(params) {} + explicit TemporalNoise(TemporalNoiseParams params) : filter_params_(params), has_prev_(false) {} void apply_filter(const cv::Mat& original, cv::Mat& filtered) const override; private: TemporalNoiseParams filter_params_; + mutable cv::Mat previous_; + mutable bool has_prev_; }; inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { - // TODO: finish him - cv::flip(original, filtered, 1); + + double sigma = filter_params_.blur_sigma; + double auto_gama_weight = filter_params_.gamma_auto_correction_weight; + int erotion_size = filter_params_.erotion_size; + int dilation_size = filter_params_.dilation_size; + + cv::Mat temp; + + cv::GaussianBlur(original, temp, cv::Size(0,0), sigma, sigma, cv::BORDER_REPLICATE); + + apply_auto_gamma(temp, auto_gama_weight); + + if (!has_prev_){ + has_prev_ = true; + temp.copyTo(previous_); + temp.copyTo(filtered); + } else { + cv::addWeighted(temp, 0.5, previous_, 0.5, 0.0, filtered); + previous_ = temp.clone(); // update for next call + } + + + apply_erosion(filtered, temp, erotion_size); + apply_dilation(temp, filtered, dilation_size); + } } // namespace vortex::image_filtering #endif // IMAGE_FILTERING__LIB__FILTERS__SONAR_NOISE_HPP_ diff --git a/image-filtering/src/ros/image_filtering_ros.cpp b/image-filtering/src/ros/image_filtering_ros.cpp index d21007f..d045f43 100644 --- a/image-filtering/src/ros/image_filtering_ros.cpp +++ b/image-filtering/src/ros/image_filtering_ros.cpp @@ -146,8 +146,16 @@ void ImageFilteringNode::set_filter_params() { } case FilterType::TemporalNoise: { TemporalNoiseParams params; - params.dontknow = - declare_and_get("filter_params.temporal_noise.dontknow"); + params.blur_sigma = + declare_and_get("filter_params.temporal_noise.blur_sigma"); + params.gamma_auto_correction_weight = + declare_and_get("filter_params.temporal_noise.gamma_auto_correction_weight"); + params.erotion_size = + declare_and_get("filter_params.temporal_noise.erotion_size"); + params.dilation_size = + declare_and_get("filter_params.temporal_noise.dilation_size"); + + filter_ptr_ = std::make_unique(params); break; From 71cc3950d9f648fe68ae6d72d125d37b3004b40e Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 24 Feb 2026 13:56:17 +0100 Subject: [PATCH 3/7] precommit fighting (the precommit no longer has a chance) --- .../config/image_filtering_params.yaml | 3 +- .../lib/filters/all_filters.hpp | 2 +- .../lib/filters/temporal_noise.hpp | 31 +++++++++---------- .../src/ros/image_filtering_ros.cpp | 18 +++++------ 4 files changed, 25 insertions(+), 29 deletions(-) diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index 85c9cf2..7f47857 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -42,7 +42,6 @@ invert: true temporal_noise: blur_sigma: 4.0 - gamma_auto_correction_weight: 4.0 + power_law_weight: 4.0 erotion_size: 2 dilation_size: 4 - diff --git a/image-filtering/include/image_filtering/lib/filters/all_filters.hpp b/image-filtering/include/image_filtering/lib/filters/all_filters.hpp index 178de8d..dc0e7ee 100644 --- a/image-filtering/include/image_filtering/lib/filters/all_filters.hpp +++ b/image-filtering/include/image_filtering/lib/filters/all_filters.hpp @@ -1,7 +1,6 @@ #ifndef IMAGE_FILTERING__LIB__FILTERS__ALL_FILTERS_HPP_ #define IMAGE_FILTERING__LIB__FILTERS__ALL_FILTERS_HPP_ -#include "image_filtering/lib/filters/temporal_noise.hpp" #include "image_filtering/lib/filters/binary_threshold.hpp" #include "image_filtering/lib/filters/dilation.hpp" #include "image_filtering/lib/filters/ebus.hpp" @@ -12,6 +11,7 @@ #include "image_filtering/lib/filters/otsu.hpp" #include "image_filtering/lib/filters/overlap.hpp" #include "image_filtering/lib/filters/sharpening.hpp" +#include "image_filtering/lib/filters/temporal_noise.hpp" #include "image_filtering/lib/filters/unsharpening.hpp" #include "image_filtering/lib/filters/white_balancing.hpp" diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index 969fb3c..05a62e0 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -1,5 +1,5 @@ -#ifndef IMAGE_FILTERING__LIB__FILTERS__SONAR_NOISE_HPP_ -#define IMAGE_FILTERING__LIB__FILTERS__SONAR_NOIse_HPP_ +#ifndef IMAGE_FILTERING__LIB__FILTERS__TEMPORAL_NOISE_HPP_ +#define IMAGE_FILTERING__LIB__FILTERS__TEMPORAL_NOISE_HPP_ #include "abstract_filter_class.hpp" #include "image_filtering/lib/utilities.hpp" @@ -11,16 +11,16 @@ namespace vortex::image_filtering { struct TemporalNoiseParams { int dontknow; double blur_sigma; - double gamma_auto_correction_weight; + double power_law_weight; int erotion_size; int dilation_size; - }; class TemporalNoise : public Filter { public: - explicit TemporalNoise(TemporalNoiseParams params) : filter_params_(params), has_prev_(false) {} + explicit TemporalNoise(TemporalNoiseParams params) + : filter_params_(params), has_prev_(false) {} void apply_filter(const cv::Mat& original, cv::Mat& filtered) const override; @@ -30,32 +30,31 @@ class TemporalNoise : public Filter { mutable bool has_prev_; }; -inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { - +inline void TemporalNoise::apply_filter(const cv::Mat& original, + cv::Mat& filtered) const { double sigma = filter_params_.blur_sigma; - double auto_gama_weight = filter_params_.gamma_auto_correction_weight; + double power_law_weight = filter_params_.power_law_weight; int erotion_size = filter_params_.erotion_size; int dilation_size = filter_params_.dilation_size; cv::Mat temp; - cv::GaussianBlur(original, temp, cv::Size(0,0), sigma, sigma, cv::BORDER_REPLICATE); + cv::GaussianBlur(original, temp, cv::Size(0, 0), sigma, sigma, + cv::BORDER_REPLICATE); - apply_auto_gamma(temp, auto_gama_weight); - - if (!has_prev_){ + apply_auto_gamma(temp, power_law_weight); + + if (!has_prev_) { has_prev_ = true; temp.copyTo(previous_); temp.copyTo(filtered); } else { cv::addWeighted(temp, 0.5, previous_, 0.5, 0.0, filtered); - previous_ = temp.clone(); // update for next call + previous_ = temp.clone(); // update for next call } - apply_erosion(filtered, temp, erotion_size); apply_dilation(temp, filtered, dilation_size); - } } // namespace vortex::image_filtering -#endif // IMAGE_FILTERING__LIB__FILTERS__SONAR_NOISE_HPP_ +#endif // IMAGE_FILTERING__LIB__FILTERS__TEMPORAL_NOISE_HPP_ diff --git a/image-filtering/src/ros/image_filtering_ros.cpp b/image-filtering/src/ros/image_filtering_ros.cpp index d045f43..552a616 100644 --- a/image-filtering/src/ros/image_filtering_ros.cpp +++ b/image-filtering/src/ros/image_filtering_ros.cpp @@ -146,16 +146,14 @@ void ImageFilteringNode::set_filter_params() { } case FilterType::TemporalNoise: { TemporalNoiseParams params; - params.blur_sigma = - declare_and_get("filter_params.temporal_noise.blur_sigma"); - params.gamma_auto_correction_weight = - declare_and_get("filter_params.temporal_noise.gamma_auto_correction_weight"); - params.erotion_size = - declare_and_get("filter_params.temporal_noise.erotion_size"); - params.dilation_size = - declare_and_get("filter_params.temporal_noise.dilation_size"); - - + params.blur_sigma = declare_and_get( + "filter_params.temporal_noise.blur_sigma"); + params.power_law_weight = declare_and_get( + "filter_params.temporal_noise.power_law_weight"); + params.erotion_size = declare_and_get( + "filter_params.temporal_noise.erotion_size"); + params.dilation_size = declare_and_get( + "filter_params.temporal_noise.dilation_size"); filter_ptr_ = std::make_unique(params); break; From 965fddf9dab5af76745da1e364f76499c1513864 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Mar 2026 13:06:00 +0100 Subject: [PATCH 4/7] =?UTF-8?q?Changing=20J=C3=B8rgen's=20requirements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image-filtering/config/image_filtering_params.yaml | 2 +- .../image_filtering/lib/filters/temporal_noise.hpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index 7f47857..8a97940 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -42,6 +42,6 @@ invert: true temporal_noise: blur_sigma: 4.0 - power_law_weight: 4.0 + power_law_weight: 4.0 # Weight for the gamma function erotion_size: 2 dilation_size: 4 diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index 05a62e0..87cfd52 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -9,7 +9,6 @@ ///////////////////////////// namespace vortex::image_filtering { struct TemporalNoiseParams { - int dontknow; double blur_sigma; double power_law_weight; @@ -20,14 +19,15 @@ struct TemporalNoiseParams { class TemporalNoise : public Filter { public: explicit TemporalNoise(TemporalNoiseParams params) - : filter_params_(params), has_prev_(false) {} + : filter_params_(params) {} void apply_filter(const cv::Mat& original, cv::Mat& filtered) const override; private: TemporalNoiseParams filter_params_; mutable cv::Mat previous_; - mutable bool has_prev_; + mutable bool has_prev_{false}; + ; }; inline void TemporalNoise::apply_filter(const cv::Mat& original, @@ -45,16 +45,16 @@ inline void TemporalNoise::apply_filter(const cv::Mat& original, apply_auto_gamma(temp, power_law_weight); if (!has_prev_) { - has_prev_ = true; temp.copyTo(previous_); temp.copyTo(filtered); + has_prev_ = true; } else { cv::addWeighted(temp, 0.5, previous_, 0.5, 0.0, filtered); - previous_ = temp.clone(); // update for next call + temp.copyTo(previous_); // update for next call } - apply_erosion(filtered, temp, erotion_size); - apply_dilation(temp, filtered, dilation_size); + apply_erosion(filtered, filtered, erotion_size); + apply_dilation(filtered, filtered, dilation_size); } } // namespace vortex::image_filtering #endif // IMAGE_FILTERING__LIB__FILTERS__TEMPORAL_NOISE_HPP_ From 5da97dbc34d836af7da3a9394cdc50c1002b5d55 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Mar 2026 15:16:07 +0100 Subject: [PATCH 5/7] fixing a beter filter for removing noise and finding the edges --- .../config/image_filtering_params.yaml | 3 ++ .../lib/filters/temporal_noise.hpp | 46 +++++++++++++++---- .../src/ros/image_filtering_ros.cpp | 6 +++ 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index 8a97940..93e65a2 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -45,3 +45,6 @@ power_law_weight: 4.0 # Weight for the gamma function erotion_size: 2 dilation_size: 4 + canny_high: 90 # upper weight for canny edge detection + canny_low: 30 # lower weight ---------- || ---------- + edge_protection_radius: 2 # Radius for protecting edges diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index 87cfd52..141c447 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -12,6 +12,10 @@ struct TemporalNoiseParams { double blur_sigma; double power_law_weight; + int canny_low; + int canny_high; + int edge_protection_radius; + int erotion_size; int dilation_size; }; @@ -27,20 +31,22 @@ class TemporalNoise : public Filter { TemporalNoiseParams filter_params_; mutable cv::Mat previous_; mutable bool has_prev_{false}; - ; }; inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { - double sigma = filter_params_.blur_sigma; - double power_law_weight = filter_params_.power_law_weight; - int erotion_size = filter_params_.erotion_size; - int dilation_size = filter_params_.dilation_size; + const double sigma = filter_params_.blur_sigma; + const double power_law_weight = filter_params_.power_law_weight; + const int erosion_size = filter_params_.erotion_size; + const int dilation_size = filter_params_.dilation_size; + const int protect_radius = filter_params_.edge_protection_radius; + const int canny_low = filter_params_.canny_low; + const int canny_high = filter_params_.canny_high; cv::Mat temp; + original.copyTo(temp); - cv::GaussianBlur(original, temp, cv::Size(0, 0), sigma, sigma, - cv::BORDER_REPLICATE); + apply_median(temp, temp, 3); apply_auto_gamma(temp, power_law_weight); @@ -50,11 +56,31 @@ inline void TemporalNoise::apply_filter(const cv::Mat& original, has_prev_ = true; } else { cv::addWeighted(temp, 0.5, previous_, 0.5, 0.0, filtered); - temp.copyTo(previous_); // update for next call + temp.copyTo(previous_); + } + + cv::Mat edges; + cv::Canny(filtered, edges, canny_low, canny_high); + + // Thicken mask a bit so we protect the whole line, not just 1px edge. + if (protect_radius > 0) { + cv::Mat k = cv::getStructuringElement( + cv::MORPH_ELLIPSE, + cv::Size(2 * protect_radius + 1, 2 * protect_radius + 1)); + cv::dilate(edges, edges, k); } - apply_erosion(filtered, filtered, erotion_size); - apply_dilation(filtered, filtered, dilation_size); + // Invert mask: where NOT edges => safe to morph aggressively. + cv::Mat not_edges; + cv::bitwise_not(edges, not_edges); + + // Morphing only outside the protected areas + cv::Mat morphed = filtered.clone(); + + apply_erosion(morphed, morphed, erosion_size); + apply_dilation(morphed, morphed, dilation_size); + + morphed.copyTo(filtered, not_edges); } } // namespace vortex::image_filtering #endif // IMAGE_FILTERING__LIB__FILTERS__TEMPORAL_NOISE_HPP_ diff --git a/image-filtering/src/ros/image_filtering_ros.cpp b/image-filtering/src/ros/image_filtering_ros.cpp index 552a616..3684198 100644 --- a/image-filtering/src/ros/image_filtering_ros.cpp +++ b/image-filtering/src/ros/image_filtering_ros.cpp @@ -154,6 +154,12 @@ void ImageFilteringNode::set_filter_params() { "filter_params.temporal_noise.erotion_size"); params.dilation_size = declare_and_get( "filter_params.temporal_noise.dilation_size"); + params.canny_high = + declare_and_get("filter_params.temporal_noise.canny_high"); + params.canny_low = + declare_and_get("filter_params.temporal_noise.canny_low"); + params.edge_protection_radius = declare_and_get( + "filter_params.temporal_noise.edge_protection_radius"); filter_ptr_ = std::make_unique(params); break; From c8077bcaa831beb39113a648e8ea56f4b7773545 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Mar 2026 15:26:40 +0100 Subject: [PATCH 6/7] fixing last variable names --- image-filtering/config/image_filtering_params.yaml | 2 +- .../include/image_filtering/lib/filters/temporal_noise.hpp | 7 ++++--- image-filtering/src/ros/image_filtering_ros.cpp | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/image-filtering/config/image_filtering_params.yaml b/image-filtering/config/image_filtering_params.yaml index 93e65a2..581c2f4 100644 --- a/image-filtering/config/image_filtering_params.yaml +++ b/image-filtering/config/image_filtering_params.yaml @@ -41,7 +41,7 @@ maxval: 255. invert: true temporal_noise: - blur_sigma: 4.0 + median_kernel_size: 3 power_law_weight: 4.0 # Weight for the gamma function erotion_size: 2 dilation_size: 4 diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index 141c447..540698a 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -9,7 +9,7 @@ ///////////////////////////// namespace vortex::image_filtering { struct TemporalNoiseParams { - double blur_sigma; + int median_kernel_size; double power_law_weight; int canny_low; @@ -35,18 +35,19 @@ class TemporalNoise : public Filter { inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { - const double sigma = filter_params_.blur_sigma; + // const double sigma = filter_params_.blur_sigma; const double power_law_weight = filter_params_.power_law_weight; const int erosion_size = filter_params_.erotion_size; const int dilation_size = filter_params_.dilation_size; const int protect_radius = filter_params_.edge_protection_radius; const int canny_low = filter_params_.canny_low; const int canny_high = filter_params_.canny_high; + const int median_kernel_size = filter_params_.median_kernel_size; cv::Mat temp; original.copyTo(temp); - apply_median(temp, temp, 3); + apply_median(temp, temp, median_kernel_size); apply_auto_gamma(temp, power_law_weight); diff --git a/image-filtering/src/ros/image_filtering_ros.cpp b/image-filtering/src/ros/image_filtering_ros.cpp index 3684198..74cd865 100644 --- a/image-filtering/src/ros/image_filtering_ros.cpp +++ b/image-filtering/src/ros/image_filtering_ros.cpp @@ -146,8 +146,8 @@ void ImageFilteringNode::set_filter_params() { } case FilterType::TemporalNoise: { TemporalNoiseParams params; - params.blur_sigma = declare_and_get( - "filter_params.temporal_noise.blur_sigma"); + params.median_kernel_size = declare_and_get( + "filter_params.temporal_noise.median_kernel_size"); params.power_law_weight = declare_and_get( "filter_params.temporal_noise.power_law_weight"); params.erotion_size = declare_and_get( From e5c5021e2673a75f69e7b03a91a78245dadd3de9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Mar 2026 15:33:05 +0100 Subject: [PATCH 7/7] fix a last comment --- .../include/image_filtering/lib/filters/temporal_noise.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp index 540698a..ffe0893 100644 --- a/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp +++ b/image-filtering/include/image_filtering/lib/filters/temporal_noise.hpp @@ -35,7 +35,6 @@ class TemporalNoise : public Filter { inline void TemporalNoise::apply_filter(const cv::Mat& original, cv::Mat& filtered) const { - // const double sigma = filter_params_.blur_sigma; const double power_law_weight = filter_params_.power_law_weight; const int erosion_size = filter_params_.erotion_size; const int dilation_size = filter_params_.dilation_size;