IDS peak ICV v1.2.0
Loading...
Searching...
No Matches
peak_icv_median_filter.hpp
Go to the documentation of this file.
1
11#pragma once
12
14#include <peak_icv_c/algorithms/filters/peak_icv_median_filter.h>
15#include <utility>
16
17namespace peak
18{
19namespace icv
20{
21
43{
44public:
50 MedianFilter() = default;
51
68 void SetKernelSize(size_t kernelSize);
69
75 PEAK_COMMON_NO_DISCARD size_t GetKernelSize() const;
76
92 PEAK_COMMON_NO_DISCARD Image Process(const Image& image) const;
93
94private:
95 size_t m_kernelSize = 3;
96};
97
98inline void MedianFilter::SetKernelSize(size_t kernelSize)
99{
100 m_kernelSize = kernelSize;
101}
102
103inline size_t MedianFilter::GetKernelSize() const
104{
105 return m_kernelSize;
106}
107
108inline Image MedianFilter::Process(const Image& image) const
109{
110 auto* const inputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(image);
111
112 Image outputImage(image.GetPixelFormat(), image.GetSize());
113 auto* const outputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(outputImage);
114
116 return PEAK_ICV_C_ABI_PREFIX peak_icv_Filter_Image_Median(inputImageHandle, m_kernelSize, outputImageHandle);
117 });
118
119 return outputImage;
120}
121
122} /* namespace icv */
123} /* namespace peak */
For detailed information about the use of ids_peak_icv Image refer to the Image Guide.
Represents a class for applying a median filter to an image to reduce noise and preserve edges.
MedianFilter()=default
Constructs a MedianFilter with a default kernel size of 3 (3×3 neighborhood).
void SetKernelSize(size_t kernelSize)
Image Process(const Image &image) const
Applies the median filter to the specified image.
void ExecuteAndMapReturnCodes(const CallableType &callableObject)