![]() |
Functions | |
int | imProcessRangeContrastThreshold (const imImage *src_image, imImage *dst_image, int kernel_size, int min_range) |
int | imProcessLocalMaxThreshold (const imImage *src_image, imImage *dst_image, int kernel_size, int min_level) |
void | imProcessThreshold (const imImage *src_image, imImage *dst_image, int level, int value) |
void | imProcessThresholdByDiff (const imImage *src_image1, const imImage *src_image2, imImage *dst_image) |
void | imProcessHysteresisThreshold (const imImage *src_image, imImage *dst_image, int low_thres, int high_thres) |
void | imProcessHysteresisThresEstimate (const imImage *image, int *low_level, int *high_level) |
int | imProcessUniformErrThreshold (const imImage *src_image, imImage *dst_image) |
void | imProcessDifusionErrThreshold (const imImage *src_image, imImage *dst_image, int level) |
int | imProcessPercentThreshold (const imImage *src_image, imImage *dst_image, float percent) |
int | imProcessOtsuThreshold (const imImage *src_image, imImage *dst_image) |
int | imProcessMinMaxThreshold (const imImage *src_image, imImage *dst_image) |
void | imProcessLocalMaxThresEstimate (const imImage *image, int *level) |
void | imProcessSliceThreshold (const imImage *src_image, imImage *dst_image, int start_level, int end_level) |
int imProcessRangeContrastThreshold | ( | const imImage * | src_image, | |
imImage * | dst_image, | |||
int | kernel_size, | |||
int | min_range | |||
) |
Threshold using a rank convolution with a range contrast function.
Supports all integer IM_GRAY images as source, and IM_BINARY as destiny.
Local variable threshold by the method of Bernsen.
Extracted from XITE, Copyright 1991, Blab, UiO
http://www.ifi.uio.no/~blab/Software/Xite/
Reference: Bernsen, J: "Dynamic thresholding of grey-level images" Proc. of the 8th ICPR, Paris, Oct 1986, 1251-1255. Author: Oivind Due Trier
Returns zero if the counter aborted.
im.ProcessRangeContrastThreshold(src_image: imImage, dst_image: imImage, kernel_size: number, min_range: number) -> counter: boolean [in Lua 5]
im.ProcessRangeContrastThresholdNew(image: imImage, kernel_size: number, min_range: number) -> counter: boolean, new_image: imImage [in Lua 5]
int imProcessLocalMaxThreshold | ( | const imImage * | src_image, | |
imImage * | dst_image, | |||
int | kernel_size, | |||
int | min_level | |||
) |
Threshold using a rank convolution with a local max function.
Returns zero if the counter aborted.
Supports all integer IM_GRAY images as source, and IM_BINARY as destiny.
im.ProcessLocalMaxThreshold(src_image: imImage, dst_image: imImage, kernel_size: number, min_level: number) -> counter: boolean [in Lua 5]
im.ProcessLocalMaxThresholdNew(image: imImage, kernel_size: number, min_level: number) -> counter: boolean, new_image: imImage [in Lua 5]
Apply a manual threshold.
threshold = a <= level ? 0: value
Normal value is 1 but another common value is 255. Can be done in place for IM_BYTE source.
Supports all integer IM_GRAY images as source, and IM_BINARY as destiny.
im.ProcessThreshold(src_image: imImage, dst_image: imImage, level: number, value: number) [in Lua 5]
im.ProcessThresholdNew(src_image: imImage, level: number, value: number) -> new_image: imImage [in Lua 5]
void imProcessThresholdByDiff | ( | const imImage * | src_image1, | |
const imImage * | src_image2, | |||
imImage * | dst_image | |||
) |
Apply a threshold by the difference of two images.
threshold = a1 <= a2 ? 0: 1
Can be done in place.
im.ProcessThresholdByDiff(src_image1: imImage, src_image2: imImage, dst_image: imImage) [in Lua 5]
im.ProcessThresholdByDiffNew(src_image1: imImage, src_image2: imImage) -> new_image: imImage [in Lua 5]
void imProcessHysteresisThreshold | ( | const imImage * | src_image, | |
imImage * | dst_image, | |||
int | low_thres, | |||
int | high_thres | |||
) |
Apply a threshold by the Hysteresis method.
Hysteresis thersholding of edge pixels. Starting at pixels with a value greater than the HIGH threshold, trace a connected sequence of pixels that have a value greater than the LOW threhsold.
Supports only IM_BYTE images. Note: could not find the original source code author name.
im.ProcessHysteresisThreshold(src_image: imImage, dst_image: imImage, low_thres: number, high_thres: number) [in Lua 5]
im.ProcessHysteresisThresholdNew(src_image: imImage, low_thres: number, high_thres: number) -> new_image: imImage [in Lua 5]
void imProcessHysteresisThresEstimate | ( | const imImage * | image, | |
int * | low_level, | |||
int * | high_level | |||
) |
Estimates hysteresis low and high threshold levels.
Supports only IM_BYTE images. Usefull for imProcessHysteresisThreshold.
im.ProcessHysteresisThresEstimate(image: imImage) -> low_level: number, high_level: number [in Lua 5]
Calculates the threshold level for manual threshold using an uniform error approach.
Supports only IM_BYTE images. Extracted from XITE, Copyright 1991, Blab, UiO
http://www.ifi.uio.no/~blab/Software/Xite/
Reference: S. M. Dunn & D. Harwood & L. S. Davis: "Local Estimation of the Uniform Error Threshold" IEEE Trans. on PAMI, Vol PAMI-6, No 6, Nov 1984. Comments: It only works well on images whith large objects. Author: Olav Borgli, BLAB, ifi, UiO Image processing lab, Department of Informatics, University of Oslo
Returns the used level.
im.ProcessUniformErrThreshold(src_image: imImage, dst_image: imImage) -> level: number [in Lua 5]
im.ProcessUniformErrThresholdNew(src_image: imImage) -> level: number, new_image: imImage [in Lua 5]
Apply a dithering on each image channel by using a difusion error method.
It can be applied on any IM_BYTE images. It will "threshold" each channel indivudually, so source and destiny must be of the same depth.
im.ProcessDifusionErrThreshold(src_image: imImage, dst_image: imImage, level: number) [in Lua 5]
im.ProcessDifusionErrThresholdNew(src_image: imImage, level: number) -> new_image: imImage [in Lua 5]
Calculates the threshold level for manual threshold using a percentage of pixels that should stay bellow the threshold.
Supports only IM_BYTE images. Returns the used level.
im.ProcessPercentThreshold(src_image: imImage, dst_image: imImage, percent: number) -> level: number [in Lua 5]
im.ProcessPercentThresholdNew(src_image: imImage, percent: number) -> level: number, new_image: imImage [in Lua 5]
Calculates the threshold level for manual threshold using the Otsu approach.
Returns the used level.
Supports only IM_BYTE images. Original implementation by Flavio Szenberg.
im.ProcessOtsuThreshold(src_image: imImage, dst_image: imImage) -> level: number [in Lua 5]
im.ProcessOtsuThresholdNew(src_image: imImage) -> level: number, new_image: imImage [in Lua 5]
Calculates the threshold level for manual threshold using (max-min)/2.
Returns the used level.
Supports all integer IM_GRAY images as source, and IM_BINARY as destiny.
im.ProcessMinMaxThreshold(src_image: imImage, dst_image: imImage) -> level: number [in Lua 5]
im.ProcessMinMaxThresholdNew(src_image: imImage) -> level: number, new_image: imImage [in Lua 5]
void imProcessLocalMaxThresEstimate | ( | const imImage * | image, | |
int * | level | |||
) |
Estimates Local Max threshold level for IM_BYTE images.
im.ProcessLocalMaxThresEstimate(image: imImage) -> level: number [in Lua 5]
void imProcessSliceThreshold | ( | const imImage * | src_image, | |
imImage * | dst_image, | |||
int | start_level, | |||
int | end_level | |||
) |
Apply a manual threshold using an interval.
threshold = start_level <= a <= end_level ? 1: 0
Normal value is 1 but another common value is 255. Can be done in place for IM_BYTE source.
Supports all integer IM_GRAY images as source, and IM_BINARY as destiny.
im.ProcessSliceThreshold(src_image: imImage, dst_image: imImage, start_level: number, end_level: number) [in Lua 5]
im.ProcessSliceThresholdNew(src_image: imImage, start_level: number, end_level: number) -> new_image: imImage [in Lua 5]