Я работаю в биометрической области, и я использую C # для многих вещей, которые я делаю по отпечаткам пальцев. По этой причине моей компании пришлось разработать библиотеку абстракций устройств для идентификации по отпечаткам пальцев. Учтите, что все сканеры отпечатков пальцев ДЕЙСТВИТЕЛЬНО нуждаются в одном вызове: getImage
. Зная об этом, моя компания написала библиотеку, которая инициализирует и настраивает каждое устройство, создает общую обертку, назначает уникальный идентификатор и выбрасывает его в большой список, который можно перечислить.
Затем со стороны C # все, что вам нужно сделать, это «выбрать» устройство (все, что вам нужно - это уникальный идентификатор и, возможно, производитель), а затем использовать его. Данные об изображении, которые возвращаются, должны быть определены заранее, чтобы вы знали, что вы будете получать каждый раз
Основная проблема этого подхода заключается в том, что многие устройства в наши дни имеют различные уловки (например, программируемые мигающие огни), и, абстрагируя устройства, вы теряете возможность доступа к этим специальным возможностям. Кроме того, некоторые устройства фактически возвращают несколько каналов данных (например, различные спектры света), и вам приходится отбрасывать все каналы, кроме одного, чтобы приложение могло оставаться независимым от устройства, что является трудным решением.
Наконец, имейте это в виду: если вы извлекаете мелочи, то используемое вами устройство, к сожалению, БУДЕТ влиять на то, какие мелочи обнаружены. Некоторые устройства «настроены» на определенные алгоритмы, поэтому регистрация на устройстве A и сопоставление с устройством B могут вообще не работать, несмотря на наличие идеальных отпечатков пальцев.