Présentation des filtres de traitement d’images
Le filtre de traitement d’image est une extension WIA. Le filtre de traitement d’image remplit deux objectifs principaux :
Pour permettre au code de traitement d’images d’être séparé du pilote. Par exemple, le filtre de traitement d’image peut être utilisé pour modifier la luminosité et le contraste d’une image, ainsi que pour effectuer le dékewing et la rotation. Le filtre de traitement d’image se trouve dans sa propre DLL, distincte de la DLL du pilote en mode utilisateur. Le filtre de traitement d’images reçoit les données d’imagerie non filtrées du pilote sur lequel il effectue le filtrage.
Pour activer des aperçus en direct précis. Le filtre de traitement des images est utilisé à partir d’un nouveau composant pour Windows Vista WIA Preview (décrit dans la documentation Microsoft Windows SDK) qui fournit des aperçus en direct précis. Dans ce contexte, « en direct » signifie qu’une application n’aura pas besoin de réapproiter l’image à partir du scanneur une fois qu’elle a modifié quelques paramètres de propriété, qui sont abordés plus loin dans cette section. Les aperçus sont précis, car le filtrage est en fait effectué par un composant fournisseur sur l’image d’aperçu réelle plutôt que par un filtre aléatoire sur une image totalement distincte.
Pour fournir des aperçus précis, un filtre doit implémenter au minimum des propriétés de luminosité et de contraste . Ainsi, l’interface utilisateur commune, qui fournit des contrôles de luminosité et de contraste à l’utilisateur, peut afficher des aperçus précis.
Le filtre de traitement d’image est toujours exécuté lorsqu’une image est analysée. Il n’existe donc aucun moyen pour une application d’obtenir l’image à partir du scanneur sans que le filtre de traitement de l’image soit appliqué en premier. Une application n’a pas besoin de connaître le filtre.
Microsoft fournit le composant WIA Preview qui met en cache l’image d’aperçu non filtrée d’origine acquise à partir du scanneur. Le composant Aperçu permet d’appliquer un filtre plusieurs fois à une image sans avoir à la réappliquer à partir du scanneur. Le composant WIA Preview est généralement utilisé pour les images d’aperçu lorsqu’une application permet à un utilisateur de modifier des paramètres, tels que le contraste et la luminosité. Pendant que l’utilisateur modifie les paramètres, l’application peut afficher en permanence l’image résultante dans le volet d’aperçu sans avoir à analyser à nouveau l’image.
Le filtre de traitement d’image est une extension WIA, exécutée en tant que composant COM in-process. Contrairement au filtre de segmentation, une application ne crée généralement pas de instance du filtre de traitement d’images lui-même en appelant IWiaItem2::GetExtension (décrit dans la documentation du KIT de développement logiciel Windows). Au lieu de cela, l’application crée un instance du composant WIA Preview, qui à son tour charge le filtre de traitement d’image réel à l’aide de la méthode IWiaItem2::GetExtension. Le filtre de traitement des images est également appelé automatiquement lorsqu’une application appelle IWiaTransfer::D ownload.
Un filtre de traitement d’image est lié à un pilote et généralement distribué avec le pilote. Le composant WIA Preview est disponible dans sti.dll et est fourni avec le système d’exploitation.
La figure suivante montre le filtre de traitement d’image chargé par les composants WIA dans le processus de l’application. Notez qu’il est possible que plusieurs instance du filtre de traitement d’image soient chargés en même temps dans le processus de l’application. Les écritures de filtre doivent donc être prudentes à ce sujet. Par exemple, dans le cas où des variables globales (statiques) sont utilisées, l’enregistreur de filtres doit garantir une synchronisation correcte.