L_INT LBitmap::AnisotropicDiffusion(uIterations, uSmoothing, fTimeStep, fMinVariation, fMaxVariation, fEdgeHeight, uUpdate, uFlags)
Performs a 2-Dimensional Anisotropic Diffusion filter on an image for reduction of varied patterned and non-patterned noise
Number of iterations the filter will perform. The size of the pyramid will be equal to this variable.
Size of smoothing kernel which is performed on image.
Defines the length of the vector field.
Increasing this variable will increase the parallel diffusion.
Increasing this variable decreases the one sided diffusion.
Max edge size which all edge values bellow will be included in the operation of the filter.
The number of iterations before each consecutive update of the image.
Reserved for future use. Must be 0.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function is dedicated to reduction of noise in images, more specifically medical images. Images with a great amount of periodic noise in them are better suited to be clarified using this filter.
The number of iterations controls the number of times the filter will be performed on image. The lower the variable is, the faster the filter will perform. Higher iterations typically means clearer results, yet it depends on the maximum length of vectors that can be computed from the image to obtain the best results.
The higher the time step variable is, the larger of a range of vectors is used for the next iteration, yet too high a value, will yield out of range results as it will exceed the maximum vectors at some spots.
The variable uUpdate is very useful when using a large number of iterations on a large image, especially when the results are not known. This variable, updates the image every number Update iterations, thus the progress of the de-noising can be witnessed.
If the image has a region, the function will be performed on the region only.
This function supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available in the Document and Medical Imaging toolkits.
This function does not support 32-bit grayscale images. It returns the error code ERROR_GRAY32_UNSUPPORTED if a 32-bit grayscale image is passed to this function.
Win32, x64.
L_INT LBitmap__AnisotropicDiffusionExample()
{
L_INT nRet;
LBitmap LeadBitmap;
nRet = LeadBitmap.Load(MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\NaturalFruits.jpg")), 0,ORDER_BGR);
if(nRet !=SUCCESS)
return nRet;
nRet = LeadBitmap.AnisotropicDiffusion(20, 1, 100.0f, 0.5f, 0.8f, 4.0f, 10, 0);
if(nRet !=SUCCESS)
return nRet;
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document