include/cvw/algorithms/filter.hpp
Image smoothing filters. More...
Namespaces
| Name |
|---|
| cvw |
Detailed Description
Image smoothing filters.
Author: Charliechen114514
Version: 1.0.0
Since: 1.0.0
Date: 2026-05-15
Provides Gaussian blur and median blur with expected-based error handling. Both operate in-place when supported by the underlying OpenCV function.
Source code
cpp
#pragma once
#include "detail.hpp"
#include <opencv2/imgproc.hpp>
namespace cvw {
template <is_pixel_format F>
[[nodiscard]] inline expected<Image<F>, AlgorithmError>
gaussian_blur(Image<F> img, int kernel_size, double sigma = 0.0) {
auto ec = detail::check_non_empty(img);
if (!ec) {
return unexpected(ec.error());
}
ec = detail::require_odd(kernel_size);
if (!ec) {
return unexpected(ec.error());
}
cv::GaussianBlur(img.mat(), img.mat(), cv::Size(kernel_size, kernel_size),
sigma);
return img;
}
template <is_pixel_format F>
requires(F::channels == 1)
[[nodiscard]] inline expected<Image<F>, AlgorithmError>
median_blur(Image<F> img, int kernel_size) {
auto ec = detail::check_non_empty(img);
if (!ec) {
return unexpected(ec.error());
}
ec = detail::require_odd(kernel_size);
if (!ec) {
return unexpected(ec.error());
}
cv::medianBlur(img.mat(), img.mat(), kernel_size);
return img;
}
} // namespace cvwUpdated on 2026-05-17 at 13:22:38 +0000