![]() |
IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
|
Anisotropic diffusion smoothing filter on 2d images. More...
| IPSDKIPLFILTERING_API image::ImagePtr | ipsdk::imaproc::filter::anisotropicDiffusion2dImg (const image::ImageConstPtr &pInImg, const ipUInt32 inNbTimeSteps, const ipReal32 inSharpness, const ipReal32 inAnisotropy) |
| wrapper function for Anisotropic diffusion smoothing filter More... | |
| IPSDKIPLFILTERING_API void | ipsdk::imaproc::filter::anisotropicDiffusion2dImg (const image::ImageConstPtr &pInImg, const ipUInt32 inNbTimeSteps, const ipReal32 inSharpness, const ipReal32 inAnisotropy, const image::ImagePtr &pOutImg) |
| wrapper function for Anisotropic diffusion smoothing filter More... | |
| IPSDKIPLFILTERING_API void | ipsdk::imaproc::filter::anisotropicDiffusion2dImg (const image::ImageConstPtr &pInImg, const ipUInt32 inNbTimeSteps, const ipReal32 inSharpness, const ipReal32 inAnisotropy, const ipReal32 inOptStdDevGrad, const ipReal32 inOptStdDevMat, const attr::GaussianCoverageConstPtr &pInOptAnisotropicGaussianCoverage, const ipUInt32 inOptNbAngles2d, const ipUInt32 inOptMaxHalfKnlSize, const ipReal32 inOptDirSmoothFactor, const ipReal32 inOptSpatialStep, const image::ImagePtr &pOutImg) |
| wrapper function for Anisotropic diffusion smoothing filter More... | |
Anisotropic diffusion smoothing filter on 2d images.
The anisotropic diffusion filter is a non-linear iterative smoothing filter that allows to eliminate noise and small-scale details from an image while preserving or even enhancing the edge structure.
The main parameters of this filter are :
which define number of time steps (number of iteration) of filter. Default parameter value (10) is in general a good compromis between convergence and computation time considerations.
parameter allows to control egde preservation. A great value for
parameter results in a highly preservated edges.
parameter allows to control smoothing along tensor main direction (it can approximately be seen as a parameter controlling smoothing along gradient direction). A small value for
parameter results in a high smoothing along gradient direction.
and
are highly correlated since one can increase first one and decrease second one to increase image smoothing while preserving algorithm edge enhancing properties. It is generally a good idea for user to start with following parameter values :


Then user should try to modify
and
values to find an adpated cupple of value.
Here is an example of
influence on an image with very high frequency area (in this case
and
).
Here is an example of
influence on an image (in this case
and
).
Please note edge enhancement while anisotropy value increase.
Some secondary parameters are also associated to this filter (user should modify these parameters with caution since some of them can generate heavy computation cost) :
is the standard deviation used to compute image gradient (see Gaussian Gradient 2d).
is the standard deviation used to compute image inertia matrix smoothing (see Gaussian Smoothing 2d).
allows to define the minimum distribution spread ratio which should be reach regards to an infinite Gaussian distribution for previous gaussian operations (gradient and smoothing).
is the number of angles along anisotropic tensor will be projected
allows to restrain local smoothing window size during processing
allows to modify local line integral convolution length
allows to define spatial step used for local line integral convolutionAttribute description for algorithm :
| Name | ToolTip | Default Initializer |
|---|---|---|
| ipsdk::imaproc::attr::InImg | [Input] image for processing operation | X |
| ipsdk::imaproc::attr::InNbTimeSteps | [Input] number for time steps for anisotropic diffusion | X |
| ipsdk::imaproc::attr::InSharpness | [Input] Sharpness factor used by processing operation | X |
| ipsdk::imaproc::attr::InAnisotropy | [Input] Anisotropy factor for processing operation | X |
| ipsdk::imaproc::attr::InOptStdDevGrad | [Input Optional] standard deviation used for gaussian gradient computation | X |
| ipsdk::imaproc::attr::InOptStdDevMat | [Input Optional] standard deviation used for matrix gaussian smoothing | X |
| ipsdk::imaproc::attr::InOptAnisotropicGaussianCoverage | [Input Optional] Parameter allowing to specify a gaussian distribution coverage for processing | X |
| ipsdk::imaproc::attr::InOptNbAngles2d | [Input Optional] Number of angles for directional smoothing | X |
| ipsdk::imaproc::attr::InOptMaxHalfKnlSize | [Input Optional] Maximum half kernel size for processing operation | X |
| ipsdk::imaproc::attr::InOptDirSmoothFactor | [Input Optional] Directional smoothing amplitude factor | X |
| ipsdk::imaproc::attr::InOptSpatialStep | [Input Optional] Spatial step used for smoothing along processed directions | X |
| ipsdk::imaproc::attr::OutWk1Img | [Output] Temporary working image for algorithm | promoteUnary (_pOutWk1Img, _pInImg, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned) |
| ipsdk::imaproc::attr::OutWk2Img | [Output] Temporary working image for algorithm | promoteUnary (_pOutWk2Img, _pInImg, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned) |
| ipsdk::imaproc::attr::OutWk3Img | [Output] Temporary working image for algorithm | promoteUnary (_pOutWk3Img, _pInImg, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned) |
| ipsdk::imaproc::attr::OutImg | [Output] image for processing operation | duplicateInOut (_pOutImg, _pInImg) |
Global rule description for algorithm :
matchSizeAndType (_pInImg,_pOutImg) &&
matchSize (_pInImg,_pOutWk1Img) &&
matchSizeAndType (_pOutWk1Img,_pOutWk2Img) &&
matchSizeAndType (_pOutWk1Img,_pOutWk3Img)
| IPSDKIPLFILTERING_API image::ImagePtr ipsdk::imaproc::filter::anisotropicDiffusion2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipUInt32 | inNbTimeSteps, | ||
| const ipReal32 | inSharpness, | ||
| const ipReal32 | inAnisotropy | ||
| ) |
wrapper function for Anisotropic diffusion smoothing filter
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
| IPSDKIPLFILTERING_API void ipsdk::imaproc::filter::anisotropicDiffusion2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipUInt32 | inNbTimeSteps, | ||
| const ipReal32 | inSharpness, | ||
| const ipReal32 | inAnisotropy, | ||
| const image::ImagePtr & | pOutImg | ||
| ) |
wrapper function for Anisotropic diffusion smoothing filter
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
| IPSDKIPLFILTERING_API void ipsdk::imaproc::filter::anisotropicDiffusion2dImg | ( | const image::ImageConstPtr & | pInImg, |
| const ipUInt32 | inNbTimeSteps, | ||
| const ipReal32 | inSharpness, | ||
| const ipReal32 | inAnisotropy, | ||
| const ipReal32 | inOptStdDevGrad, | ||
| const ipReal32 | inOptStdDevMat, | ||
| const attr::GaussianCoverageConstPtr & | pInOptAnisotropicGaussianCoverage, | ||
| const ipUInt32 | inOptNbAngles2d, | ||
| const ipUInt32 | inOptMaxHalfKnlSize, | ||
| const ipReal32 | inOptDirSmoothFactor, | ||
| const ipReal32 | inOptSpatialStep, | ||
| const image::ImagePtr & | pOutImg | ||
| ) |
wrapper function for Anisotropic diffusion smoothing filter
| ipsdk::processor::IPSDKBaseProcessingException | on failure |
1.8.14