IDS peak ICV v1.0.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
22namespace experimental
23{
34{
35public:
41 MedianFilter() = default;
42
53 void SetKernelSize(size_t kernelSize);
54
62 PEAK_ICV_NO_DISCARD size_t GetKernelSize() const;
63
77 PEAK_ICV_NO_DISCARD Image Process(const Image& image) const;
78
79private:
80 size_t m_kernelSize = 3;
81};
82
83inline void MedianFilter::SetKernelSize(size_t kernelSize)
84{
85 m_kernelSize = kernelSize;
86}
87
88inline size_t MedianFilter::GetKernelSize() const
89{
90 return m_kernelSize;
91}
92
93inline Image MedianFilter::Process(const Image& image) const
94{
95 auto* const inputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(image);
96
97 Image outputImage(image.GetPixelFormat(), image.GetSize());
98 auto* const outputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(outputImage);
99
101 return PEAK_ICV_C_ABI_PREFIX peak_icv_Filter_Image_Median(inputImageHandle, m_kernelSize, outputImageHandle);
102 });
103
104 return outputImage;
105}
106
107} /* namespace experimental */
108
109} /* namespace icv */
110} /* namespace peak */
For detailed information about the use of ids_peak_icv Image refer to the Image Guide.
peak::common::Size GetSize() const
Provides the size of the image.
peak::common::PixelFormat GetPixelFormat() const
Provides the pixel format of the image.
Class for applying a median filter on an image.
MedianFilter()=default
Constructs a MedianFilter object with the default kernel size of 3x3.
void SetKernelSize(size_t kernelSize)
Sets the size of the kernel used for the median filter.
Image Process(const Image &image) const
Applies the median filter on the provided image and returns the filtered Image.
size_t GetKernelSize() const
Retrieves the current kernel size.
void ExecuteAndMapReturnCodes(const CallableType &callableObject)