![]() |
IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
|
bilateral filter on 2d image More...
| IPSDKIPLFILTERING_API image::ImagePtr | ipsdk::imaproc::filter::bilateral2dImg (const image::ImageConstPtr &pInImg, const ipReal64 inSpaceSigma, const ipReal64 inRangeSigma) |
| wrapper function for bilateral filter on 2d image (tabulated exponential implementation) More... | |
| IPSDKIPLFILTERING_API image::ImagePtr | ipsdk::imaproc::filter::bilateral2dImg (const image::ImageConstPtr &pInImg, const ipUInt32 inHalfKnlSize, const ipReal64 inSpaceSigma, const ipReal64 inRangeSigma) |
| wrapper function for bilateral filter on 2d image (tabulated exponential implementation) More... | |
| IPSDKIPLFILTERING_API void | ipsdk::imaproc::filter::bilateral2dImg (const image::ImageConstPtr &pInImg, const ipUInt32 inHalfKnlSize, const ipReal64 inSpaceSigma, const ipReal64 inRangeSigma, const image::ImagePtr &pOutImg) |
| wrapper function for bilateral filter on 2d image (tabulated exponential implementation) More... | |
bilateral filter on 2d image
The bilateral filter is a non-linear smoothing filter that has good properties of edge-preserving. Each pixel value is replaced by a weighted average of the values of its neighbours. The weight is a product of two gaussian functions, one depending on the euclidian distance between the central pixel and its current neighbour, the other depending on the difference of the intensities of these 2 pixels.
On output image values are given by:
where:
is the weight function; ![$W(x, y, o_x, o_y)=f_S(o_x, o_y)*f_R(|InImg[x, y]-InImg[x+o_x, y+o_y]|)$](form_425.png)
is the space function; 
is the range function; 
is defined by InOptHalfKnlSize attribute (if this attribute is not initialized, then
equals to
)
is defined by InRangeSigma attribute
is defined by InSpaceSigma attributeInput and output images must have same size.
Here is an example of a bilaterial filter applied to an 8-bits grey levels input image (with
and
) :
Attribute description for algorithm :
| Name | ToolTip | Default Initializer |
|---|---|---|
| ipsdk::imaproc::attr::InImg | [Input] image for processing operation | X |
| ipsdk::imaproc::attr::InRangeSigma | [Input] sigma for range gaussian function | X |
| ipsdk::imaproc::attr::InSpaceSigma | [Input] sigma for spatial gaussian function | X |
| ipsdk::imaproc::attr::InOptHalfKnlSize | [Input Optional] half kernel size (square or cubic kernel) | X |
| ipsdk::imaproc::attr::OutImg | [Output] image for processing operation | ipsdk::imaproc::duplicateInOut (_pOutImg, _pInImg) |
Global rule description for algorithm :
ipsdk::imaproc::matchSize (_pInImg,_pOutImg)
| IPSDKIPLFILTERING_API image::ImagePtr ipsdk::imaproc::filter::bilateral2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipReal64 | inSpaceSigma, | ||
| const ipReal64 | inRangeSigma | ||
| ) |
wrapper function for bilateral filter on 2d image (tabulated exponential implementation)
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
| IPSDKIPLFILTERING_API image::ImagePtr ipsdk::imaproc::filter::bilateral2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipUInt32 | inHalfKnlSize, | ||
| const ipReal64 | inSpaceSigma, | ||
| const ipReal64 | inRangeSigma | ||
| ) |
wrapper function for bilateral filter on 2d image (tabulated exponential implementation)
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
| IPSDKIPLFILTERING_API void ipsdk::imaproc::filter::bilateral2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipUInt32 | inHalfKnlSize, | ||
| const ipReal64 | inSpaceSigma, | ||
| const ipReal64 | inRangeSigma, | ||
| const image::ImagePtr & | pOutImg | ||
| ) |
wrapper function for bilateral filter on 2d image (tabulated exponential implementation)
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
1.8.14