Despite being listed in the supported devices my Elan reader (0x0c28) can be hardly used with libfrint currently. Here is my attempt at addressing the issues and making the reader usable. Some obvious changes are based directly on https://github.com/iafilatov/libfprint/tree/elan-touch. Other noteworthy changes:
- the number of calibration loops was increased as otherwise it was not possible to complete the enrollment at all (it fails at every second capture)
- some handling for 0xaf was added CAPTURE_READ_DATA; I do not know what the code means but it is return relatively often and prevents the enrollment from completion
- bz3_threshold was decreased due to the reader's low resolution and poor image quality
- the original image is resized to make minutiae extraction work (resizing is enough to extract a bunch of minutiae from a single frame)
- a simple sharpening convolution filter is applied to the resized image to improve minutiae extraction (usually doubles the number of extracted minutiae)
Even if you decide not to include the whole PR I would like to ask you to consider increasing the number of calibration loops and adding some handling for the 0xaf result code as otherwise it is literaly impossible to enroll even in the swipe mode.