IDS peak ICV v1.3.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
47{
48public:
56 MedianFilter() = default;
57
77 void SetKernelSize(size_t kernelSize);
78
85 PEAK_COMMON_NO_DISCARD size_t GetKernelSize() const;
86
112 PEAK_COMMON_NO_DISCARD Image Process(const Image& image) const;
113
114private:
115 size_t m_kernelSize = 3;
116};
117
118inline void MedianFilter::SetKernelSize(size_t kernelSize)
119{
120 m_kernelSize = kernelSize;
121}
122
123inline size_t MedianFilter::GetKernelSize() const
124{
125 return m_kernelSize;
126}
127
128inline Image MedianFilter::Process(const Image& image) const
129{
130 auto* const inputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(image);
131
132 Image outputImage(image.GetPixelFormat(), image.GetSize());
133 auto* const outputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(outputImage);
134
136 return PEAK_ICV_C_ABI_PREFIX peak_icv_Filter_Image_Median(inputImageHandle, m_kernelSize, outputImageHandle);
137 });
138
139 return outputImage;
140}
141
142} /* namespace icv */
143} /* namespace peak */
For detailed information about the use of ids_peak_icv Image refer to the Image Guide.
Class for applying a median filter to an image.
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)