Thank you for your inquiry.
I like to apprise you that:
Threshold: is actually the percentage of the black pixels in the OMR mark area to consider it as filled. Setting the mark threshold level allows Aspose.OCR to determine which area is actually filled. This value directs how leniently or strictly the API will interpret the OMR marks. The default FillThreshold value is set to 0.45 whereas the maximum value is 1.0.
With threshold value as low as 0.1 (10%) all marks are recognized as filled. Marks are considered to be filled because even the empty mark circle takes about 26% to 30% of the area depending on area size, whereas actually filled mark takes about 60% to 70% of the area. Therefore, if threshold value is set less than 30%, all marks are recognized as filled. Sample images are attached showing the percentage for better understanding.
TrimWhitePixels: OMR algorithm considers any element’s cell as filled if ratio of black pixels to white pixels is above a certain threshold level. If a cell is bigger than a bubble/OMR element, then white space around the bubble/OMR element makes it impossible for amount of black pixels to get above the threshold. OmrConfigTrimWhitePixels property allows you to solve this problem by discarding white space around black pixels.
Hope the above information helps. Feel free to contact us in case of any query or comments.