[go: up one dir, main page]

BE1026095B1 - Dispositif de traitement d’images - Google Patents

Dispositif de traitement d’images Download PDF

Info

Publication number
BE1026095B1
BE1026095B1 BE20195141A BE201905141A BE1026095B1 BE 1026095 B1 BE1026095 B1 BE 1026095B1 BE 20195141 A BE20195141 A BE 20195141A BE 201905141 A BE201905141 A BE 201905141A BE 1026095 B1 BE1026095 B1 BE 1026095B1
Authority
BE
Belgium
Prior art keywords
image
region
sub
pixels
pixel
Prior art date
Application number
BE20195141A
Other languages
English (en)
Other versions
BE1026095A1 (fr
Inventor
Brecht Milis
Michel Dauw
Frédéric Collet
Original Assignee
Iris Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Iris Sa filed Critical Iris Sa
Publication of BE1026095A1 publication Critical patent/BE1026095A1/fr
Application granted granted Critical
Publication of BE1026095B1 publication Critical patent/BE1026095B1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/40062Discrimination between different image types, e.g. two-tone, continuous tone
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/273Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion removing elements interfering with the pattern to be recognised
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/40075Descreening, i.e. converting a halftone signal into a corresponding continuous-tone signal; Rescreening, i.e. combined descreening and halftoning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10008Still image; Photographic image from scanner, fax or copier
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30176Document
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/01Solutions for problems related to non-uniform document background

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Treatment Of Fiber Materials (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)

Abstract

Procede de traitement d'une image tramee comprenant une grille de pixels, le procede comprenant les etapes consistant a : definir une matrice de pixels correspondant a une sous-region de l'image ; effectuer une detection de bord le long des lignes et des colonnes de la matrice ; compter le nombre de bords detectes le long des lignes de la matrice pour determiner le nombre de bords horizontaux dans la matrice ; compter le nombre de bords detectes le long des colonnes de la matrice pour determiner le nombre de bords verticaux dans la matrice ; identifier si la sous-region est tramee en fonction du nombre de bords horizontaux et verticaux dans la matrice ; et traiter selectivement la sous-region correspondante de l'image selon si la sous-region est identifie comme etant tramee ou pas. L'etape d'identification peut egalement etre basee sur la longueur des segments de pixels similaires dans les lignes de la matrice.

Description

Dispositif de traitement d'images Cette invention concerne généralement un procédé et un dispositif de traitement d'images. Plus précisément, mais pas exclusivement, l'invention concerne un procédé et un dispositif de traitement d'une image en vue d'un procédé de reconnaissance optique de caractères (OCR) ultérieur, par exemple, en identifiant les régions de l'image d'entrée qui sont tramées.
Etat de l’art On sait que les dispositifs de traitement d'images peuvent être utilisés pour reconnaître du texte et d'autres objets dans une image.
Par exemple, les dispositifs d'OCR sont souvent utilisés pour reconnaître et convertir le texte d'une image numérique d'entrée sous forme codée par machine, comme le code ASCII. L'image peut être, par exemple, un PDF d'un document numérisé qui est reçu par un dispositif d'OCR d'un scanner. Cependant, de manière alternative bien entendu, l'image peut être reçue à partir d'autres sources telles qu'un ordinateur et/ou dans d'autres formats de fichier tels que TIFF ou JPEG.
Généralement, pour améliorer les chances de reconnaître avec succès le texte dans une image d'entrée, les systèmes OCR prétraitent l'image d'entrée pour, par exemple, séparer le texte des données de fond (par exemple, pour séparer le texte du reste de l'image). Ce procédé de séparation implique généralement de binariser l'image pour convertir sélectivement le texte en blanc et tout le reste en noir (ou vice versa).
Cependant, certaines images d'entrée sont formées par tramage, technique d'imagerie courante qui permet de créer l'illusion d'une profondeur de couleur à partir d'une palette de couleurs limitée. De telles images tramée, ou des régions tramées d'une image, produisent des arrière-plans non uniformes qui peuvent compliquer le procédé de binarisation et conduire à un bruit de pointillé dans l'image binaire. Ce bruit peut réduire l'efficacité de l'étape de binarisation pour séparer ie texte de l'arrière -plan et, par conséquent, réduire considérablement la précision et la vitesse d'un procédé d'OCR ultérieur. Un autre problème avec les arrière-plans frame est qu'ils rendent difficile l'établissement d'un seuil de binarisation approprié pour séparer tout le texte, ce qui, par conséquent, peut faire en sorte que certaines zones de texte soient mal réglées à la même couleur que les données de fond.
Pour supprimer/enlever les effets du tramage dans une image d'entrée, certain procédés de traitement d'image antérieurs lissent l'image d'entrée pendant l'étape de prétraitement, éventuellement avant la binarisation. Un inconvénient de ces approches est qu'elles nécessitent un temps de traitement et des ressources supplémentaires pour lisser toute l'image d'entrée. De plus, il peut être difficile de définir un niveau de lissage approprié qui ne rend pas l'image pas trop floue et qui réduit le contraste du texte. Pour au moins ces raisons, ces procédés de traitement préalable peuvent réduire l'efficacité, la qualité et la rapidité des étapes de binarisation et/ou de reconnaissance de caractères.
EP 1 455 304 A2 (D1) décrit un procédé d'étiquetage de données d'images numériques, comprenant: a) détecter des bords définis par des données d'image ayant une première résolution; b} détecter les bords définis par les données d'image ayant une seconde résolution; c} combiner les résultais de a) avec les résultats de b) pour définir des données d'image intermédiaires; et d) associer une étiquette à chaque pixel des données d'image.
US 6 160 913 A (D2) décrit un procédé de traitement d'image pour la détection et l'élimination de points de demi-teintes, ledit procédé comprenant les étapes de la conversion d'une image en échelle de gris en une image à seuil binaire avec des régions de demi-teintes identifiant des régions de demi-teintes dans l'image à seuils binaire, dans lequel l'étape d'identification des régions de demi-teintes est effectuée par: classer l'image à seuil binaire pour produire une carte de classification en demi- teinte; reclasser la carte de classification de demi-teintes pour produire une carte de reclassification de derni-teintes de lignes avec plusieurs pixels de demi-teintes dans chaque ligne; fusionner les pixels de demi-teintes dans chaque ligne dans la carte de reclassification de demi-teintes pour produire une carte de lignes de demi-teintes, et fusionner les lignes de la carte de ligne en demi-teinte pour produire une carte de région en demi-teinte; et éliminer les points de demi-teintes des régions de demi-teintes identifiées.
La présente invention vise à fournir un procédé et un dispositif de traitement d'images pour traiter au moins certaines des questions susmentionnées.
Exposé de l'invention Selon un premier aspect, l'invention fournit un procédé de traitement d'une image tramée comprenant une grille de pixels (de préférence avant le traitement de détection d'objet), le procédé comprenant les étapes consistant à : définir une matrice de pixels correspondant à une sous-région de l'image ; effectuer une détection de bord le long des lignes et des colonnes de la matrice ; compter le nombre de bords détectés le long des lignes de la matrice pour déterminer le nombre de bords horizontaux dans la matrice ; compter le nombre de bords détectés le long des colonnes de la matrice pour déterminer le nombre de bords verticaux dans la matrice ; identifier si la sous-région est tramée en fonction du nombre de bords horizontaux et verticaux dans la matrice ; et traiter de manière sélective la sous-région correspondante de l'image selon que la sous-région est identifiée ou non comme étant tramée.
Selon un deuxième aspect, l'invention fournit un procédé de traitement d'une image iramée comprenant une grille de pixels (de préférence avant le traitement de détection d'objet), le procédé comprenant les étapes consistant à : définir une matrice de pixels correspondant à une sous-région de l'image ; détecter des segments de pixels similaires dans les lignes de la matrice, dans lequel la différence de valeur de pixel entre pixels voisins dans un segment est inférieure à un seuil de contraste prédéterminé ; identifier si la sous-région est tramée en fonction des longueurs des segments ; et traiter de manière sélective la sous-région correspondante de l'image selon que la sous-région est identifiée ou non comme étant tramée.
En conséquence, on verra que les procédés soumis ici sont des procédés de traitement sélectif d'une sous-région donnée d'une image en fonction de l'identification ou non de la sous-région comme étant une partie tramée de l'image. De cette facon,
différentes sous-régions d'une image peuvent être traitées différemment pour mieux gérer les tramages qui s'y trouvent.
Le traitement sélectif peut consister à décider "s'il faut’ et/ou “comment” traiter la sous-région correspondante.
Par exemple, le traitement sélectif peut comprendre l'application d'un procédé d'élimination de tramage à la sous-région de l'image si la sous-région est identifiée comme étant tramée, et éventuellement ne pas appliquer un procédé d'élimination de tramage à la sous-région de l'image si la sous-région n'est pas identifiée comme étant tramée. De cette façon, les ressources de traitement peuvent être économisées en r'appliquant pas le procédé de suppression de tramage aux sous-régions qui ne sont pas tramées.
En outre ou alternativement, le traitement sélectif peut comprendre l'application d'une technique de binarisation avec seuillage adaptatif pour s'adapter aux différentes conditions entre les régions tramées et non tramées. Par exemple, l'étape de traitement sélectif peut comprendre (N le traitement de la sous-région de l'image avec un procédé de binarisation ayant un premier seuil de binarisation si la sous-région est identifiée comme étant tramée, et {ij le traitement de la sous-région de l'image avec un procédé de binarisation ayant un deuxième seuil de binarisation différent si la sous-région n’est pas identifiée comme étant tramée. De cette façon, la technique de binarisation peut séparer plus efficacement le texte de l'arrière plan de l'image.
Dans d'autres exemples, des techniques de traitement d'image autres que la binarisation ou l'élimination de tramage peuvent être appliquées de manière adaptative {par exemple en modifiant un ou plusieurs de leurs paramètres de contrôle) à une sous- région de l'image en que la sous-région soit identifiée comme étant tramée ou non.
Ainsi, en général, on verra que l'étape de traitement sélectif peut comprendre le traitement de la sous-région de l'image si elle est identifiée comme étant tramée, et éventuellement ne pas traiter la sous-région si elle n'est pas identifiée comme étant tramée. Alternativement, l'étape de traitement sélectif peut comprendre le traitement de la sous-région de l'image selon un premier procédé si elle est identifiée comme étant tramée et le traitement de la sous-région de l'image selon un deuxième procédé différent si la sous-région n'est pas identifiée comme étant tramée.
Le procédé de suppression du tramage peut comprendre l'application d'une 5 fonction de lissage à la sous-région correspondante de l'image.
Dans certains cas, les procédés peuvent également comprendre la détermination de la longueur moyenne de bord dans la sous-région de l'image, et l'établissement d'un paramètre de contrôle du procédé de suppression de tramage pour contrôler le niveau de suppression de tramage à une valeur basée sur la longueur moyenne de bord déterminée. De préférence, le rayon de lissage est réglé sur une valeur basée sur la longueur moyenne de bord, car il permet un lissage optimisé sans flou excessif du texte et/ou d'autres objets qui peuvent être présents dans l'image. It est bien entendu important d'éviter le flou excessif pour améliorer la précision des procédé ultérieurs de détection d'objets (par exemple, les procédés d'OCR ultérieurs).
Le procédé d'élimination de tramage peut être organisé de manière à au moins réduire le tramage. idéalement, cependant, le procédé d'élimination de tramage permet d'éliminer sensiblement ie tramage.
Ainsi, il sera noté que les procédés puissent traiter sélectivement une image ayant une région tramée pour fournir une image améliorée. De préférence, les procédés traitent sélectivement l'image avant un procédé de détection d'objet tel qu'un procédé OCR.
On verra également que la détection de bord détecte les bords le long des lignes de la matrice (c'est-à-dire le long des lignes et des colonnes de la matrice).
Le procédé de détection de bord peut être considérée comme une invention à part entière et peut donc constituer un autre aspect de l'invention en soi. De préférence, la détection de bord comprend les étapes consistant à : 1) détecter les extrema locales (par exemple un maximum local et un minimum local) le long d'une ligne ; iN} identifier de paires locales successives d'extrema de types opposés (par exemple, un minimum local suivi d'un maximum local) ;
{ii} identifier le maximum local et/ou le minimum local dans une paire d'extrema locales successives de types opposés identifiés comme étant un bord.
Un minimum local peut être un pixel dont la valeur est soit (1) inférieure à celle de ses deux pixels voisins, soit (ij) identique à celle d'un de ses pixels voisins et inférieure à celle de l'autre pixel voisin. De même, un maximum local peut être un pixel dont la valeur est soit (1) supérieure à celle de ses deux pixels voisins, soit {Hi} identique à celle d'un de ses pixels voisins et supérieure à celle de l'autre pixel voisin. Les pixels voisins sont de préférence sur la même ligne que le minimum/maximum local et sont directement adjacents au minimum/maximum local.
Un maximum local (ou un minimum local) d'une paire d'extrema locales successives de types opposés peut être identifié comme étant un bord s'il est déterminé qu'il satisfait (1) à un critère basé sur la différence de valeur des pixels entre le maximum local et le minimum local de la paire, et/ou (ij) à un critère basé sur le nombre de pixels entre le maximum local et le minimum local (c'est-à-dire sur la longueur du bord).
Par exemple, dans les exemples préférés, un maximum local (ou un minimum local) dans une paire d'extrema locales successives de types opposés est identifié comme étant un bord si (1) le delta absolu en valeur de pixels entre le minimum local et ie maximum local dépasse un seuil de contraste (par exemple un delta absolu minimum) ; et/ou (ij) le nombre de pixels entre le maximum local et le minimum local ne dépasse pas un seuil de longueur de bord (par exemple un bord maximum).
il sera noté que le nombre de pixels entre un minimum local et un maximum local fournit une longueur de bord.
Le critère basé sur la différence de valeur en pixels entre le maximum local et le minimum local dans la paire, et le critère basé sur la longueur de bord peuvent chacun être utilisés pour identifier les bords d'un certain type - par exemple, ils peuvent être utilisés pour identifier les bords du texte d'un ou plusieurs types de police.
Ainsi, compte tenu de ce qui précède, il sera noté que les bords détectés ici peuvent être une extremum local dans une paire d'extremum locaux successifs de types Opposés qui satisfait (1) au critère de contraste basé sur la différence de valeur des pixels entre le maximum local et le minimum local dans la paire, et/ou {Hi} au critère de longueur du bord basé sur le nombre de pixels entre le maximum local et le minimum local.
Nonobstant ce qui précède, on verra aussi que les procédés présentés ici peuvent identifier des régions tramées en fonction () du nombre de bords horizontaux et de bords verticaux ; et/ou (ij) de la longueur des segments de pixels similaires. idéalement, pour obtenir les résultats les plus précis, les régions tramées sont identifiées en fonction () du nombre de bords horizontaux et de bords verticaux, et (il) de lalongueur des segments de pixels similaires.
Dans une série d'exemples, l'étape consistant à déterminer si une sous-région est tramée peut consister à identifier si le nombre de bords horizontaux et le nombre de bords verticaux dépassent chacun un nombre seuil prédéterminé. Le nombre de seuils prédéterminé peut définir ie nombre minimum de bords et, dans certains cas, il peut être mis à l'échelle en fonction de la longueur moyenne de bord dans la mairice. À cet égard, les procédés peuvent également comprendre la détermination de la longueur moyenne de bord dans la matrice. Dans certains cas, le nombre de seuils prédéterminés peut être basé sur la superficie de la sous-région - par exemple, il peut dépendre de la superficie de la sous-région à laquelle la matrice correspond. Le seuil prédéterminé peut également dépendre d'un pourcentage minimum attendu de bords dans la sous-région.
En outre, ou alternativement, l'étape consistant à identifier si une sous-région est tramée peut consister à déterminer si le nombre de bords horizontaux par rapport au nombre de bords verticaux dépasse un rapport prédéterminé. Le rapport prédéterminé fixe idéalement un rapport maximal entre les bords horizontaux et les bords verticaux, mais, bien entendu, il peut aussi fixer un rapport minimal. Le rapport prédéterminé peut être utilisé pour identifier certaines formes de tramage - par exemple, it peut être utilisé pour rechercher un tramage de forme circulaire.
Dans une série d'exemples, les longueurs des segments peuvent être pondérées en fonction de leur taille ; et l’étane consistant à identifier si la sous-région est tramée consiste à déterminer si la somme des longueurs pondérées est supérieure à un seuil de somme prédéterminé. Dans certains exemples, le seuil de somme prédéterminé peut être mis à l'échelle sur la base d'une longueur moyenne de bord de la matrice. À cet égard, les procédés peuvent également comprendre la détection de bord le long des lignes de la matrice et la détermination de la longueur moyenne de bord dans la matrice.
Dans certains exemples, les procédés peuvent également comprendre une étape consistant à : si la sous-région est identifiée comme étant tramée, régler un pixel d'un masque (par exemple un masque d'identification de tramage) à une première valeur (par exemple noir), où le pixel défini est co-localisé avec le pixel central de la sous-région de l'image - c'est-à-dire où le pixel défini dans le masque a les mêmes coordonnées que le pixel central de la sous-région dans l'image. De même, les procédés peuvent également comprendre une étape consistant à : si la sous-région n'est pas identifiée comme étant tramée, régler un pixel du masque à une deuxième valeur {par exemple blanc), où le pixel réglé est co-localisé avec le pixel central de la sous-région de l'image. idéalement, la deuxième valeur est différente de la première.
On comprendra que les pixels noirs du masque identifient l'emplacement des régions tramées de l'image. En conséquence, le masque fournit une carte qui peut être utilisée par les procédés ultérieurs pour traverser sélectivement (par exemple, traiter sélectivement) les régions tramées/non tramées.
Dans certains exemples, les procédés peuvent également comprendre le binarisation de l'image traitée pour générer une image binaire en vue d'un traitement ultérieur - par exemple, les procédés peuvent comprendre le binarisation de l'image après application sélective d'une fonction de lissage.
Dans d'autres exemples encore, les procédés peuvent également comprendre l'exécution d'un procédé de détection d'objection (par exernpie, un procédé OCR) sur l'image traitée - par exemple, sur l'image traitée sélectivement ou l'image binaire.
Dans certains exemples, la matrice définie de pixels est une sous-région sélectionnée de pixels de l'image. Par exemple, les pixels d'une sous-région de l'image peuvent définir les pixels de la matrice.
Dans un ensemble d'exemples, les procédés peuvent consister à échantiionner l'image pour obtenir une image échantillonnée. Dans ces cas, la matrice définie de pixels peut être une sous-région sélectionnée de pixels de l'image échantillonnée. C'est- à-dire, par exemple, les pixels de la sous-région échantillonnée peuvent définir les pixels de la matrice.
Dans certains exemples, l'image est échantillonnée selon un facteur d'échantifionnage basé sur la longueur moyenne de bord des bords horizontaux et/ou verticaux dans l'image. Ainsi, les procédés peuvent comprendre la détermination de la longueur moyenne de bord des bords horizontaux et'ou verticaux de l'image.
De préférence, l'étape de définition d'une matrice de pixels consiste à appliquer une fonction de fenêtre coulissante à l'image/l'image échantitionnée. Les pixels de la fenêtre coulissante définissent de préférence les pixels de la matrice.
idéalement, les procédés définissent une matrice centrée sur chaque pixel de l'image/l'image échantillonnée (par exemple en centrant une fenêtre coulissante sur chaque pixel de l'image/limage échantillonnée), et chaque matrice est analysée pour identifier si sa sous-région correspondante est tramée en fonction {) du nombre de bords horizontaux et de bords verticaux de la mairice ; eVou (Hi) des longueurs des segments des pixels similaires dans la matrice. Cette analyse peut bien entendu comprendre l'exécution des procédés de détection de segment et/ou de détection de bord décrits dans le présent document. En outre, les sous-régions correspondant aux matrices peuvent être traitées de manière sélective selon le traitement sélectif prévu par le présent document.
On verra aussi que puisque la matrice correspond à une sous-région de l'image, ies procédés utilisées ici peuvent aussi identifier la matrice à tramer en fonction de la longueur des segments. C'est-à-dire, par exemple, si la sous-région est identifiée comme étant tramée, la mairice peut également être identifiée comme étant tramée, ou vice versa.
L'image peut être reçue d'une source d'image d'entrée telle qu'un scanner, un dispositif photo, un ordinateur ou un smartphone. L'image reçue peut être une image en niveaux de gris ou en couleur. Cependant, si l'image reçue est en couleur, le procédé peut consister à convertir l'image en niveaux de gris.
L'invention s'étend à un dispositif de traitement d'image comprenant des moyens de traitement agencés pour traiter une image ayant une grille de pixels, de préférence avant le traitement de détection d'objet, conformément à l'une quelconque des procédés décrits ici Les moyens de traitement peuvent être un seul processeur ou un ensemble de composants comprenant un processeur et d'autres unités logiques. Par exemple, le dispositif de traitement d'images peut comprendre un processeur, un détecteur de bords, un détecteur de segment, un détecteur de région tramée et une unité de traitement sélectif. Le processeur peut être agencé pour définir une matrice de pixels. Le détecteur de bords peut être agencé pour effectuer la détection de bords et compter le nombre de bords. Le détecteur de segment peut être disposé de manière à détecter les segments. Le détecteur de région tramée peut être agencé pour identifier si une sous-région est tramée. L'unité de traitement sélectif peut être conçue pour traiter sélectivement des sous-régions de l'image. H ressort de la description suivante que les moyens de traitement peuvent comprendre d'autres unités logiques et que les unités logiques des moyens de traitement peuvent exécuter d'autres étapes des procédés décrits ici.
L'invention s'étend en outre à un dispositf programmable programmé pour exécuter l'un quelconque des procédés de traitement d'une image décrit ici. L'invention s'étend en outre à un programme d'ordinateur adapté pour permettre à un dispositif programmable d'exécuter l'un quelconque des procédés de traitement d'une image décrits ici. Le programme d'ordinateur peut être un logiciel, qui peut être stocké sur un support non transitoire lisible par ordinateur. Ainsi, l'invention s'étend en outre à un support non transitoire lisible par ordinateur comprenant un logiciel adapté lorsqu'il est exécuté sur un dispositif programmable (par exemple un dispositif de traitement d'image) pour exécuter l'un quelconque des procédés de traitement d'une image décrits ici.
ti BE2019/5141 Dans un autre aspect, il peut être prévu un logiciel adapté pour amener un dispositif de traitement d'images à : définir une matrice de pixels correspondant à une sous-région de l'image ; effectuer une détection de bord le long des lignes et des colonnes de la matrice ; compter le nombre de bords détectés le long des lignes de la matrice pour déterminer le nombre de bords horizontaux dans la matrice ; compter le nombre de bords détectés le long des colonnes de la matrice pour déterminer le nombre de bords verticaux dans la matrice ; identifier si la sous-région est tramée en fonction du nombre de bords horizontaux et verticaux de la matrice ; et traiter sélectivement la sous-région correspondante de l'image en fonction de l'identification ou non de la sous-région comme étant tramée.
Dans un autre aspect encore, il peut y avoir un logiciel adapté pour amener un dispositif de traitement d'images à : définir une matrice de pixels correspondant à une sous-région de l'image ; détecter des segments de pixels similaires dans les lignes de la matrice, où la différence de valeur de pixel entre pixels voisins dans un segment est inférieure à un seuil de contraste prédéterminé ; identifier si la sous-région est tramée en fonction de la longueur des segments ; et traiter sélectivement la sous-région correspondante de l'image en fonction de l'identification ou non de la sous-région comme étant tramée.
il est entendu que l'une quelconque des caractéristiques décrites dans le présent document en relation avec un ensemble particulier de modes de réalisation/exemples peut être combinée avec les caractéristiques d'un autre ensemble de modes de réalisation/exemples sans aucune autre limitation que celles que confèrent les aspects les plus larges de l'invention tels que définis ci-dessus.
Brève description des dessins Certains exemples privilégiés de l'invention seront maintenant décrits, à titre d'exemple seulement, en référence aux dessins qui l'accompagnent, dans lesquels :
La figure 1 est un dessin schématique d'un système d'imagerie selon un exemple de la présente invention ; La figure 2 est un diagramme bloc schématique illustrant certaines fonctions d'un dispositif de traitement d'images incorporant l'invention ; La figure 3 illustre un procédé de détection de bord selon un exemple de la présente invention ; La figure 4 est un procédé de détection de segment selon un exemple de la présente invention ; La figure 5 est un procédé d'échantillonnage selon un exemple de la présente invention ; La figure 6 est un procédé d'identification de région tramée selon un exemple de la présente invention : La figure 7 est un procédé de détermination de région tramée selon un exemple de la présente invention ; La figure 8 est un procédé d'élimination de tramage selon un exemple de la présente invention ; La figure 9 illustre un exemple d'une image d'entrée ayant du texte dans une région tramée et du texte dans une région à arrière-plan blanc ; La figure 10 illustre un exemple de masque d'identification tramé qui peut être généré à partir de l'image d'entrée de la figure 9 ; La figure 11 illustre un exemple d'une image traitée qui a été générée en lissant sélectivement les régions tramées de l'image d'entrée de la figure 9 ; el Les figures 12A et 12B montrent respectivement une partie agrandie de l'image d'entrée de la figure 3 et l'image de traitement de la figure 11, à titre de comparaison.
Description détaillée La figure 1 montre un système d'OCR 1 comprenant un dispositif de traitement d'images 20. Le dispositif de traitement d'image 20 incarne l'invention et est conçu pour recevoir une image numérique d'entrée 15 d'une source d'image d'entrée 10. La source d'image d'entrée 10 peut être, par exemple, une caméra 11 (par exemple, un appareil photographique reflex numérique DSLR ou un smartphone), un scanner 12 (par exemple, un scanner à plat), une unité de stockage 13 ou toute autre source d'image capable de fournir une image numérique d'entrée 15 au dispositif de traitement d'image
20. L'unité de stockage peut être une base de données, une mémoire, un lecteur de disque ou tout autre dispositif de stockage de données configuré pour stocker une image numérique d'entrée. De préférence, cependant, l'unité de stockage 13 est un serveur de stockage ou une mémoire d'un ordinateur.
L'image d'entrée 15 comprend une matrice de pixels et définit au moins une région de texte et au moins une région tramée. L'image d'entrée peut être une image couleur ou une image en niveaux de gris, de n'importe quelle taille ou rapport de forme.
La figure 9 montre un exemple d'une image d'entrée en niveaux de gris 15 qui a un arrière-plan blanc uniforme 901 avec une région tramée 902. L'image d'entrée 15 contient également du texte de différentes tailles. Certains textes apparaissent sur une région d'arrière-plan blanc 903, et d'autres sur une région tramée 904. En général, il est difficile pour les systèmes d'OCH de reconnaître le texte dans les régions tramée, en particulier lorsqu'elles sont petites. En outre, il est difficile pour ces systèmes d'OCR de faire la distinction entre les régions d'arrière-plan uniformes comprenant du petit texte {par exemple, 905) et les régions d'arrière-plan comprenant des données tramée (par exemple, 902}. Comme décrit plus en détail ci-dessous, le dispositif de traitement d'image 20 identifie la ou les régions tramées dans l'image d'entrée 15 et génère de préférence un masque (par exemple, un masque d'identification de tramage) pour indiquer les emplacements des régions tramées dans l'image d'entrée 15. La figure 10 donne un exemple de masque d'identification de tramage 101 qui a été généré en traitant l'image d'entrée de la figure 9 à l’aide d'un procédé conforme au procédé d'identification de region tramée de la figure 6. Comme illustré, le masque d'identification de tramage 101 est une image binaire comprenant des pixels noir et blanc. Les pixels noirs 102 correspondent aux régions identifiées comme étant tramées. Inversement, les pixels blancs 103 correspondent aux régions qui n'ont pas été identifiées comme étant tramées.
Dans certains exemples, le dispositif de traitement d'image 20 peut générer une image traitée 16 en appliquant sélectivement une fonction de traitement d'image (par exemple, une fonction de lissage ou un autre filtre) aux parties de l'image d'entrée 15 qui ont été identifiées comme étant tramée (par exemple, 102). ldéalement, le dispositif de traitement d'image 20 laisse le reste de l'image d'entrée 15 dans son état d'origine -
on verra donc que l'image traitée 16 peut être identique à l'image d'entrée 15, sauf pour les régions lissées. On verra également que le dispositif de traitement d'image 20 économise des ressources de traitement en n'appliguant pas de fonction de traitement d'image à l'ensemble de l'image d'entrée 15. Dans certains exemples, le dispositif de traitement d'image applique sélectivement la fonction de traitement d'image en fonction de l'emplacement des régions tramées identifiées dans le masque d'identification de tramage. Dans d'autres exemples, le dispositif de traitement d'image peut appliquer une fonction de traitement d'image dès qu'il détermine qu'une région actuellement analysée de l'image d'entrée correspond à une région tramée.
De préférence, le dispositif de traitement d'image 20 applique une fonction de Iissage aux régions de tramage identifiées pour générer une image traitée 16. La figure 11 montre un exemple d'une image traitée qui a été générée en lissant les régions tramées de l'image d'entrée de la figure 9. Les figures 12A et 12B montrent des vues agrandies des régions co-localisées des figures 9 et 11 à des fins de comparaison. Comme le montre la figure 125, le niveau de tramage autour du mot "coloré" a été réduit par rapport à la figure 12A, La figure 2 montre quelques composants préférés du dispositif de traitement d'image 20 qui comprennent un détecteur de bord 21, un détecteur de segment 22, un échantillonneur 23, un détecteur de région tramée 24, un générateur de masque d'identification de tramage 25, et une unité de traitement sélectif 26. Ces composants iHustrés peuvent être des unités logiques séparées ou leurs fonctions peuvent être exécutées par un processeur du dispositif de traitement d'images 20, Le processeur 20 peut également exécuter les fonctions du dispositif de traitement OCR 40 ou d'un autre dispositif de détection d'objets. Le processeur peut être programmé pour exécuter ces fonctions en exécutant un code lisible par machine. Ainsi, dans certains exemples, les fonctions du dispositif de traitement d'images 20, de l'OCR 20 et/ou d'un procédé de détection d'objet peuvent faire partie du même produit logiciel, qui peut être exécuté par un processeur.
Le détecteur de bords 21 est conçu pour exécuter n'importe lequel des procédés de détection de bords décrits ici. Le détecteur de segment 22 est agencé pour détecter des segments uniformes de pixels dans un ensemble donné de pixels d'image selon un procédé de détection de segment décrit ici. L'échantillonneur 23 est agencé pour échantillonner une image d'entrée 15 afin d'obtenir une image échantillonnée à plus faible résolution. De préférence, l'échantillonneur 23 échantillonne une image d'entrée 15 selon un procédé d'échantilonnage décrit ici. Le détecteur de région de tramage 24 est agencé pour déterminer si un ensemble donné de pixels de l'image est tramé.
L'ensemble de pixels peut être les pixels d'une fenêtre donnée d'une image d'entrée/échantillonnée 15. Le généraieur de masque d'identification de tramage 25 identifie quelle(s) région(s) d'une image d'entrée 15 est/sont tramée(s) en utilisant l'un quelconques des procédé d'identification de région tramée présentés ici, De préférence, le générateur de masque d'identification de tramage 25 génère un masque binaire (par ex. masque noir et blanc) qui indique quels pixels de l'image d'entrée font partie d'une région tramée. L'unité de traitement sélectif 26 est agencée pour éliminer/réduire le tramage dans une région tramée de l'image à l'aide d'un procédé d'élimination de tramage décrit ici.
Les images traitées 16 générées par le dispositif de traitement d'images 20 peuvent être utilisées dans des procédé ultérieurs tels que la binarisation, l'OCR ou tout autre procédé de détection d'objet. On notera le fait que l'efficacité de ces procédés ultérieurs puisse être améliorée en supprimant ou en réduisant le tramage dans l'image d'entrée 15. Par exemple, l'efficacité d'une étape de binarisation pour séparer le texte du reste de l'image sera améliorée en supprimant/réduisant le tramage dans une image d'entrée 15.
Dans la figure 1, le dispositif de traitement d'image 20 fournit l'image traitée 16 à un dispositif de traitement OCR 40, mais dans d'autres exemples, il peut, en plus ou en alternative, fournir l'image traitée à un autre type de dispositif de détection d'objet pour traitement ultérieur ou il peut simplement sortir l'image traitée 16 comme version améliorée de l'image 15 en entrée. Le dispositif de traitement OCR 40 peut appliquer r'importe quel procédé standard de reconnaissance de caractères pour convertir le texte de l'image traitée 16 sous forme codée par machine, comme le code ASCII.
Le dispositif de traitement d'images 20 peut communiquer avec la ou les sources d'images d'entrée et/ou du dispositif de traitement OCR 40 via une connexion câblée et/ou sans fil. La connexion sans fil peut être une connexion WiFi, Bluetooth ou ZigBee. De plus, une partie ou la totalité des communications peut se faire sur un réseau étendu {WAN - comme Internet) ou sur un réseau local (LAN). En conséquence, on notera que ie système illustré à la figure 1 peut comprendre d'autres composants conventionnels {par exemple des routeurs, des récepteurs etou des émetieurs) pour faciliter les différentes communications. Cependant, pour des raisons de simplicité, ces composants conventionnels ne sont pas représentés dans les dessins.
Le dispositif de traitement d'images peut aussi avoir d'autres composants conventionnels, tels qu’une mémoire, une batterie, elc, mais ceux-ci sont omis des dessins pour des raisons de simplicité.
La figure 3 montre un procédé de détection de bord qui, comme détaillé ci- dessous, est utilisée de préférence dans les exemples ci-dessous pour, par exemple, échantillonner une image d'entrée 15 et déterminer si un ensemble donné de pixels est tramé. Un avantage de ce procédé de détection de bord est qu'il permet de détecter et de caractériser rapidement les bords (par exemple, en caractérisant la longueur et le gradient d'un bord). Le procédé permet également de calculer les valeurs des tables de zones additionnées (c'est-à-dire des tables d'intégration) et/ou des tampons circulaires au fur et à mesure que chaque ligne de pixels est analysée. Toutefois, la présente invention ne se limite pas nécessairement à l'utilisation de ce procédé de détection de bord, et il sera noté que les exemples présentés ici peuvent utiliser alternativement des procédés conventionnelles de détection de bord pour détecter des bords (par exemple, les bords horizontaux et verticaux) et des procédés conventionnels de caractérisation des bords (par exemple, pour caractériser la longueur des bords et leur contraste) ; mais avec éventuellement une performance en chute.
Le procédé de détection de bord de la figure 3 peut être appliqué à une ligne de pixels d'une image (par exemple, une image d'entrée/échantillonnée). La ligne peut être une ligne horizontale de pixels ou une ligne verticale de pixels dans une image. Par exemple, dans certains procédés (par exemple le procédé d'échantillonnage), le procédé de détection de bord peut être appliquée à une rangée entière ou à une colonne entière de l'image d'entrée 15. Dans d'autres procédés (par exemple, le procédé de détermination de région tramée), le procédé de détection de bord peut être appliqué à une ligne entière et/ou à une colonne entière d'une fenêtre d'une image (par exemple, le procédé de détection de bord peut être appliqué à une ou plusieurs lignes et/ou colonnes d'une sous-zone d'une image, OÙ la sous-zone peut être définie en appliquant une fenêtre coulissante à l'image).
À l'étape 301, le procédé de détection de bord commence à analyser séquentiellement chaque pixel le long d'une ligne, le long d'une direction de balayage (par exemple de gauche à droite ou vice versa, ou de haut en bas ou vice versa). À l'étape 302, le procédé compare la valeur (par exemple l'intensité) du pixel actuellement analysé avec la valeur du pixel précédent. Sur la base de cette comparaison, le procédé détermine si le profil d'intensité de l'image dans cette région est descendant, ascendant ou plat. Par exemple, si la valeur du pixel actuel est inférieure à celle du pixel précédemment analysé, le procédé détermine que le profil d'intensité dans cette région de l'image est descendant, Inversement, si la valeur relative du pixel actuel est supérieure ou égale à celle du pixel précédent, le procédé détermine que le profil d'intensité est respectivement ascendant ou plat.
À l'étape 303, le procédé détermine si le pixel précédent est un minimum local ou un maximum local. En général, un pixel minimal local a une valeur inférieure à un ou à ses deux pixels voisins, et un pixel maximal local a une valeur supérieure à un ou à ses deux pixels voisins. Le pixel précédent peut être considéré comme un pixel minimum local lorsque le profil d'intensité passe d'un profil descendant à un profil ascendant ou à un profil plat. Inversement, le pixel précédent peut être déterminé comme étant un pixel maximum local lorsque le profil d'intensité passe d'un profil ascendant à un profil descendant ou à un profil plat. Si le profil d'intensité ne change pas et reste plat, le procédé peut éventuellernent incrémenter la position des pixels du minimum local ou du maximum local précédemment trouvé. Par souci de simplicité, le terme ” sxtremum locale ” est utilisé ici pour désigner couramment un minimum local ou un maximum local.
À l'étape 304, le procédé détermine si une paire d'extrema locales successives de types opposés a été trouvée (p. ex. un minimum local suivi d'un maximum local, ou vice versa). Si l'on ne trouve pas une paire d'extrema locales successives de types opposés, le procédé procède à l'analyse du pixel suivant le long de la ligne à l'étape
310.
Si l'on trouve une paire d'extrema locales successives de types opposés, le procédé procède à la caractérisation de la paire aux étapes 305 et 306. Plus précisément, le procédé calcule le delta absolu en valeur de pixel entre la paire d'extrema locales (p. ex. la différence de valeur de pixel entre un minimum local et un maximum local successif) pour obtenir une valeur de contraste à l'étape 305. Le procédé calcule également le nombre de pixels entre la paire d'extrema locales pour obtenir une longueur de bord à l'étape 306. H sera noté que le contraste et la longueur du bord fournissent un indicateur du gradient entre la paire d'extrema locales. La longueur de bord fournit également un indicateur de lissage. À l'étape 307, le procédé détermine si le contraste calculé à l'étape 305 satisfait à un critère de contraste et si la longueur de bord calculée à l'étape 306 satisfait à un critère de longueur de bord. Le critère de contraste est satisfait de préférence lorsque le contraste calculé dépasse un seuil de contraste minimum. De même, le critère de longueur de bord est satisfait de préférence lorsque la longueur de bord calculée est inférieure à un seuil de longueur de bord maximum, Le seuil de contraste minimum et le seuil de longueur de bord maximum peuvent chacun, respectivement, définir un delta absolu Minimum en valeur de pixels et une longueur de bord maximum qui est attendue pour un bord ou type(s) de bord authentique. Par exemple, le seuil de contraste minimum peut définir le delta absolu minimum attendu pour un bord de texte d'un ou de plusieurs types de polices, de préférence 20 ou 40, ou tout nombre entre 20 et 40. De préférence, la valeur du seuil de contraste minimum est une valeur de niveau de gris. La longueur maximale de bord peut définir la longueur maximale de bord d'un bord de texte d'un ou de plusieurs types de police et est de préférence de 8 ou 12, ou un nombre quelconque entre eux. Ainsi, il sera noté que le critère de longueur de bord et le critère de contraste peuvent être utilisés chacun pour filtrer les faux bords et/ou les bords non désirés.
À l'étape 308, le procédé identifie le maximum local et/ou le minimum local de la paire d'extrema locales comme un bord si les critères de contraste et de longueur de bord à l'étape 307 sont tous deux satisfaits. Les bords identifiés peuvent être caractérisées par les valeurs de contraste et de longueur de bord calculées aux étapes 305 et 306. Inversement, à l'étape 309, le procédé identifie le maximum local et/ou le minimum local de la paire d'extrema locales comme étant un non-bord si l'un ou l'autre des critères de contraste ou les deux ne sont pas satisfaits. À l'étape 310, le procédé procède à l'analyse du pixel suivant le long de la ligne, s'il est présent. Une fois qu'une ligne a été traitée, le procédé de détection de bord peut ensuite être appliqué pour analyser séquentiellement les lignes suivantes d'une image/fenêtre d'une image. De cette façon, les bords d'une fenêtre ou d'une image entière peuvent être détectés et caractérisés.
il sera noté que si le procédé de détection de bord est appliqué à une ligne horizontale, le procédé détectera et caractérisera les bords horizontaux. Inversement, si le procédé est appliquée à une ligne verticale, elle détectera et caractérisera les bords verticaux.
Bien qu'elle ne soit pas illustrée à la figure 3, le procédé de détection de bord peut également mettre à jour/générer un tableau d'intégration (p. ex. tableau des zones additionnées) et/ou un tampon circulaire équivalent pour garder un compte de tous les bords horizontaux et/ou verticaux que le procédé a détecté. La mise en œuvre de tels tableaux d'intégration et de tampons circulaires équivalents sera familière à l'homme du métier car il s'agit d'outils courants en informatique, mais il sera bien entendu noté que l'utilisation de tels tableaux/tampons dans les procédés fournis ici peut ne pas être connue. Les éléments d'une table d'intégration et/ou d'un tampon circulaire équivalent sont de préférence mis à jour/générées selon l'expression logique [1] lors de l'analyse des lignes horizontales. Inversement, si les lignes verticales sont analysées, les éléments d'une table d'intégration et/ou d'un tampon circulaire équivalent sont de préférence mis à jour/générées selon l'expression logique [2]. De préférence, les éléments sont mis à jour/générées à la volée chaque fois que le procédé de détection de bord analyse une ligne de pixels (par exemple après l'étape 308 et avant l'étape 310).
Élément (x, y) = Élément (x, y-1) + somme_rangées [1] Élément (x, y) = Élément (x-1, y) + somme colonne [2] Où : L'élément (x, y) est l'élément de la tablefampon associé à l'image/pixel de fenêtre aux coordonnées (x, y) ; L'élément (x, y-1) représente le nombre de bords identifiés le long de la ligne horizontale de l'image/fenêtre au moment de Vanalyse du pixel (x, y-1} ; L'élément (x-1, y) représente le nombre de bords identifiés le long de la ligne verticale de l'image/fenêtre au moment de l'analyse du pixel (x-1, y) :
Somme_rangées est le nombre de bords identifiés le long de la ligne horizontale de l'image/de la fenêtre au moment de l'analyse du pixel (x, y) ; et Somme_colonne est le nombre de bords identifiés le long de la ligne verticale de l'image/fenêtre au moment de l'analyse du pixel (X, y).
En plus de la mise à jour/génération d'une table d'intégration/tampon circulaire respective pour le nombre de bords horizontaux et/ou de bords verticaux, le procédé de détection de bord peut également mettre à jour/générer une table d'intégration et/ou un tampon circulaire équivalent pour garder une trace de la somme des longueurs de bords. La table/tampon d'intégration pour la somme des longueurs de bords peut être basée sur les longueurs de bords calculées lors de la détection de bord horizontale ou de bord verticale. Les éléments de la table d'intégration/tampon pour la somme des longueurs de bords sont de préférence mis à jour/générés selon l'expression logique 13]. Comme pour les tables/tampons d'intégration pour le comptage horizontal et vertical des bords, les éléments de la table/tampon d'intégration pour la somme des longueurs de bords sont de préférence mis à jour/générées à la volée lorsque le procédé de détection de bord analyse une ligne de pixels (par exemple, après l'étape 308 et avant l'étape 310).
Élément (x, y) = Élément (x, y-1} + somme_ligne [3] Où : L'élément (x, y) est l'élément de la table/tampon associé à l'image/pixel de la fenêtre aux coordonnées {x,y}; L'élément (x, y-1) représente la somme des longueurs de bord le long de la ligne de l'image/fenêtre au moment de l'analyse du pixel (x, y-1) ; et Somme ligne est la somme des longueurs de bord le long de la ligne de l'image/fenêtre au moment de l'analyse du pixel (x, y).
En général, il sera noté que chaque élément d'une table d'intégration et/ou d'un tampon soit associé à un pixel donné d'une image/fenêtre d'une image. De plus, un élément donné d'une table/tampon d'intégration peut fournir une valeur globale. Par exemple, un élément donné d'une table d'intégration/tampon pour compter le nombre de bords horizontaux peut fournir le nombre total de bords horizontaux/verticaux qui ont
Di BE2019/5141 été trouvés par le procédé de détection de bord jusqu'au point d'analyse (et y compris le point d'analyse), du pixel qui est associé à l'élément donné.
Comme il ressort plus clairement du reste de cette description, le comptage des bords horizontaux et verticaux et/ou la somme des longueurs de bords peuvent être utilisés dans d'autres procédés - par exemple pour échantillonner une image d'entrée etou détecter une région tramée. Dans certains exemples, il est préférable que ces procédés utilisent une table d'intégration et/ou un lampon ciroulaire équivalent pour déterminer ces valeurs car elles sont rapides et économes en ressources. Toutefois, il est à noter que ces procédé ne se limitent pas à l'utilisation de tables d'intégration et/ou de tampons circulaires, et qu'ils peuvent également utiliser d'autres moyens pour déterminer ces valeurs, sans toutefois présenter les mêmes avantages en termes de rapidité et d'efficacité. Par exemple, dans certains exemples, les procédés peuvent compter de façon répétée le nombre de bords horizontaux au besoin.
La figure 4 montre un procédé de détection de segment. Le procédé identifie un segment de pixels qui satisfait à un critère d'unitormité et, comme le procédé de détection de bords, peut être appliqué à une ligne de pixels d'une image - par exemple pendant ie procédé de détection de tramage de la figure 7.
À l'étape 401, le procédé de détection de segment commence à analyser séquentiellement chaque piel le long d'une ligne (par exemple de gauche à droite). À l'étape 402, le procédé détermine le delta absolu (c'est-à-dire la différence absolue) en valeur (par exemple l'intensité) entre le pixel actuellement analysé et le pixel précédent pour obtenir une valeur de contraste. Le procédé détermine ensuite si le delta absolu satisfait à un critère d'uniformité à l'étape 403. Le critère d'uniformité est de préférence un seuil de contraste maximal et peut être satisfait lorsque la différence calculée à l'étape 402 est inférieure à ce seuil de contraste. Le seuil de contraste peut être prédéterminé et est réglé de préférence sur une valeur de 10, 20 ou 30, ou n'importe quel nombre entre 10 et 30. Un seuil de contraste de 20 est particulièrement avantageux parce qu'il permet la présence d'un bruit à basse fréquence dans Varrière- plan, tout en filtrant les changements de contraste plus importants dus aux transitions texte-arrière-plan et/ou au bruit à haute fréquence (comme le tramage). ldéalement, le seuil de contraste maximal utilisé dans le procédé de détection de segment est différent du seuil de contraste minimal utilisé dans le procédé de détection de bord.
Si le critère d'uniformité est satisfait à l'étape 403, le pixel actuel est considéré comme appartenant au même segment que le pixel précédent et, par conséquent, le segment du pixel précédent augmente d'un pixel à l'étape 404. Bien sûr, si le pixel précédent ne fait pas déjà partie d'un segment, un nouveau segment est créé à l'étape 404 pour inclure le pixel précédent et le pixel actuel. Si le critère d'uniformité de l'étape 403 n'est pas satisfait, l'étape 406 arrête définitivement la croissance du segment du pixel précédent. De cette façon, il sera noté que chaque segment ne peut contenir que des pixels qui changent séquentiellement de moins que le seuil de contraste.
À l'étape 405, le procédé de détection de segment augmente la valeur d'une somme de lignes en fonction de la longueur du segment actuel {c'est-à-dire le segment associé au pixel actuel). De préférence, une fraction de la longueur du segment actuel est ajoutée à la somme de lignes. Par exemple, la somme de lignes peut être augmentée selon l'expression logique [4], de préférence lorsque le procédé de détection de segment analyse la ligne de pixels. somme ligne += x/diviseur [4] Où x est la longueur de segment actuel, et le diviseur est un entier prédéterminé tel que 1 ou 10, ou un nombre quelconque entre eux. il sera noté que l'expression [4] donne un nombre triangulaire de x. On verra aussi que lorsque le diviseur est choisi pour être 1, alors la valeur totale ajoutée à la somme ligne quand un segment cesse de croître sera donnée par l'expression [S]. somme_ligne = x"{(x+1Y2 {51 il sera également noté qu'une nouvelle somme de lignes est calculée pour chaque nouvelle ligne analysée par le détecteur de segment. De plus, chaque fois qu'un segment croît, sa longueur (ou de préférence une fraction de la longueur) à ce moment est ajoutée à la somme de lignes. De cette façon, les segments les plus longs ont plus de poids. Par conséquent, comme on s'attend à ce que les arrière-plans uniformes (avec ou sans texte) aient des segments plus longs, on verra que ces régions ont plus de poids dans la somme de lignes. Ainsi, on verra aussi que le procédé de détection de segment fournit les longueurs pondérées de chaque segment qu'il détecte.
À l'étape 407, le procédé de détection de segment analyse le pixel suivant le long de la ligne, s'il est présent. Une fois que le procédé a terminé l'analyse de la ligne, il peut bien sûr être appliqué à une autre ligne de l'image/fenêtre. Bien qu'il ne soit pas Hlustré à la figure 4, le procédé de détection de segment peut également mettre à jour/ générer les éléments d'un tableau d'intégration {par exemple, une zone additionnée) et/ou un tampon circulaire équivalent ; de préférence selon l'expression logique [6] si on analyse les lignes horizontales et de préférence selon l'expression logique [7] si on analyse les lignes verticales. Des tables/tampons séparés sont de préférence générés/mis à jour pour les lignes verticales et les lignes horizontales. De plus, les éléments des tables/tampons d'intégration sont idéalement mis à jour/généré(e)s au fur et à mesure que le procédé de détection de segment analyse séguentiellement chaque ligne de pixels (par exemple, après l'étape 405 et avant l'étape 407). Élément (x, y) = Élément (x, y-1) + somme ligne 6] Élément (x, y} = Élément (x-1, y) + somme ligne [7] Où: L'élément (x, y) est l'élément de la tablefampon associé à l'image/pixel de la fenêtre aux coordonnées (x, y) ; L'élément (x, y-1) représente la somme de lignes selon l'expression logique [5] au moment de l'analyse de pixel (x, y-1} ; L'élément (x-1, y) représente la somme linéaire selon l'expression logique [5] au moment de l'analyse de pixel (X-1, v) ; et la somme de lignes est la somme de lignes donnée par l'expression logique [5]. En se basant sur les expressions [6] et [7], il sera noté qu'un élément donné de la table/tampon intégrale peut stocker la somme des sommes de lignes (par exemple la somme du nombre triangulaire de longueurs de segment) calculées par le procédé de detection de segment jusqu'au point d'analyse (et y compris le point d'analyse) du pixel
DA BE2019/5141 associé à l'élément donné, et y compris ce dernier. Il sera également entendu que puisque les sommes de lignes fournissent des longueurs de segment pondérées, la somme des sommes de lignes est une somme pondérée.
La somme des sommes de lignes est utilisée pour la détection d'une région tramée, par exemple. Et, comme pour les comptages de bords, la table/tampon intégrale fournit un moyen rapide et efficace de déterminer la somme des sommes de lignes lorsque nécessaire, mais les procédés ici ne se limitent pas à utiliser des tables/tampons intégraux pour cette détermination.
La figure 5 montre un procédé d'échantilionnage optionnelle qui échantillonne une image d'entrée 15 pour obtenir une image à plus faible résolution. Un avantage d'un tel sous-échantillonnage d’une image d'entrée est qu'il permet une détection plus rapide et plus précise des bords lors des procédés ultérieurs de détection de bords (par exemple, lors de l'étape de détection de bords de la figure 6). H permet également une détection plus rapide des segments. À l'étape 501, le procédé d'échantillonnage reçoit une image d'entrée 15. On suppose que l'image d'entrée 15 est en échelle de gris et, si nécessaire, a été convertie de couleur en échelle de gris avant que l'image d'entrée 15 soit reçue à l'étape 501. Cette conversion peut être effectuée par le dispositif de traitement d'images 20. À l'étape 502, le procédé de détection de bord de la figure 3 est appliqué à chaque rangée de l'image d'entrée 15 successivement (par exemple de haut en bas) pour détecter les bords horizontaux et déterminer leur longueur de bord respective. A l'étape 503, la somme de toutes les longueurs de bords est divisée par le nombre total de bords horizontaux pour déterminer une longueur moyenne de bord. De préférence, les longueurs de bords sont additionnées directement comme elles sont calculées pendant ie procédé de détection de bords. Toutefois, la somme des longueurs de bord peut alternativement être déterminée à l'aide d'un tableau d'intégration des longueurs de bords ou d'un tampon circulaire équivalent. Comme indiqué précédemment, la table d'intégration/tampon circulaire peut être générée dans le cadre du procédé de détection de bords.
À l'étape 504, le procédé d'échantillonnage détermine si la longueur moyenne de bords calculée à l'étape 503 et ie nombre de bords horizontaux détectés répondent aux critères d'échantilonnage respectifs. Les critères relatifs à la longueur moyenne de bords sont remplis lorsque la longueur moyenne de bords est inférieure à un facteur d'échantilionnage maximal et n'est pas égale à deux. Le critère du nombre de bords horizontaux est rempli lorsque le nombre de bords horizontaux dépasse un nombre minimum de bords. En fixant ainsi un nombre minimum de bords horizontaux requis, on s'assure que la longueur moyenne de bords est significative.
Si les critères d'échantillonnage de l'étape 504 sont remplis, l'image d'entrée 15 est échantillonnée à l'étape 505 pour former une image échantillonnée à plus faible résolution en utilisant la longueur moyenne de pixel calculée à l'étape 503 comme facteur d'échantillonnage. Tout procédé d'échantilonnage standard peut être utilisé à cette fin, Il sera noté que les exigences des critères d'échantillonnage garantissent que lalongueur moyenne de pixels fournit un facteur d'échantilionnage optimal.
Si les critères d'échantillonnage de l'étape 504 ne sont pas remplis, le procédé d'échantillonnage décide de ne pas échantillonner l'image d'entrée 15 {étape 506). Toutefois, la longueur moyenne calculée de pixels peut être utilisée dans des procédés ultérieurs tels que les étapes de détermination de bords des figures 6 et 7.
il est à noter que si le procédé d'échantilionnage de la figure 5 est basé sur l'analyse des bords horizontaux, le procédé d'échantitlonnage peut également être basé sur l'analyse des bords verticaux.
Un exemple de procédé d'identification d'une région tramée sera maintenant décrit en référence à la figure 6. Ce procédé utilise de préférence une technique de fenêtre coulissante pour analyser successivement différentes parties/régions d'une image. L'image peut être l'image d'entrée 15 ou l'image échantillonnée. À chaque position de fenêtre, on détermine si la partie des pixels de l'image à l'intérieur de la fenêtre appartient ou non à une région tramée de l'image. Cette détermination peut être fondée sur une caractéristique du ou des bords de la fenêtre el/ou sur une caractéristique du niveau d'uniformité dans la région. Par exemple, la détermination peut être basée sur le nombre de bords dans la fenêtre et/ou sur une caractéristique du ou des segments uniformes dans la fenêtre, telle que la somme de la ou des longueur(s)
de segments uniformes dans la fenêtre. Pour assurer une bonne précision, H est préférable que la détermination ci-dessus soit fondée à la fois sur les caractéristiques du ou des bords de la fenêtre et sur les caractéristiques du niveau d'uniformité dans la région. Toutefois, H sera noté que certains exemples puissent faire la détermination sur la base de l'une ou l'autre de ces caractéristiques seulement.
À l'étape 601, une image d'entrée est reçue. On suppose que l'image d'entrée reçue 15 est en niveaux de gris ou qu'elle a déjà été convertie de couleur en niveaux de gris, par exemple par le dispositif de traitement d'image 20.
À l'étape 602, l'image d'entrée 15 est échantillonnée en option pour produire une image échantilonnée à plus faible résolution. De préférence, l'image d'enirée est échantillonnée à l'aide du procédé d'échantillonnage de la figure 5. Si l'image d'entrée n'est pas échantillonnée, les étapes restantes de la figure 5 peuvent être directement 15 appliquées à l'image d'entrée 15 au lieu de l'image échantillonnée.
À l'étape 603, le procédé procède au centrage séquentiel d'une fenêtre coulissante sur chaque pixel de l'image d'entrée/échantilonnée. Pour une image d'entrée/échantillonnée de 300 ppp, la fenêtre est de préférence de 65 pixels par 65 pixels. Cette taille de fenêtre est idéale pour l'analyse d'images de documents (par exemple des documents A4) car elle capture généralement des données d'arrière-plan et une ou plusieurs parties du texte. Cependant, d'autres tailles de fenêtre peuvent bien sûr être utilisées et, si la résolution de l'image est inférieure à 300 ppp, la taille de la fenêtre peut être réduite. Si l'image d'entrée est échantillonnée, la taille de la fenêtre peut être mise à l'échelle en fonction du facteur d'échantillonnage (par exemple, la longueur moyenne de bord). Cependant, il est préférable que la taille minimale de la fenêtre soit de 17 pixels par 17 pixels. Dans certains exemples ou applications, la taille de la fenêtre peut être la même que celle de l'image.
À l'étape 604, le procédé consiste à déterminer si la fenêtre est positionnée sur une région tramée de l'image d'entrée/échantilionnée, en fonction d'une caractéristique du ou des bords de la fenêtre et/ou d'une caractéristique du niveau d'uniformité de la région. Dans cet exemple, la détermination à l'étape 604 utilise les étapes décrites à la figure 7 qui, comme on le verra, nécessite le nombre total de bords horizontaux et verticaux dans la fenêtre.
Les bords horizontaux et verticaux de la fenêtre sont de préférence détectés en appliquant le procédé de détection de bord de la figure 3 à chacune des lignes et colonnes de la fenêtre.
Le nombre total de bords horizontaux et verticaux de la fenêtre peut ensuite être déterminé à l'aide d'une table d'intégration ou d'un tampon circulaire équivalent qui est généré/mis à jour pendant le procédé de détection de bord.
Toutefois, it est préférable d'utiliser un tampon circulaire pour une détection plus rapide. ll sera noté qu'un homme du métier sait comment la table d'intégration et le tampon circulaire peuvent être utilisés pour déterminer le nombre total de bords verticaux/horizontaux.
Par exemple, l'homme du métier notera que les éléments de la table/tampon d'intégration qui correspondent aux pixels d'image dans les coins de la fenêtre puissent être utilisés pour calculer le nombre total de bords horizontaux/Verticaux de la fenêtre en fonction, par exemple, de l'expression logique [8]. somme hautGauche + somme basDroite - somme haultDroite - somme _basGauche [8] Où : somme_hautGauche est la valeur de l'élément qui correspond au pixel dans le coin supérieur gauche de la fenêtre ; somme_basDroite est la valeur de l'élément qui correspond au pixel dans le coin inférieur droit de la fenêtre : somme_hautDroit est la valeur de l'élément qui correspond au pixel dans le coin supérieur droit de la fenêtre ; et somme_basGauche est la valeur de l'élément qui correspond au pixel dans le coin inférieur gauche de la fenêtre.
À l'étape 701, le procédé détermine si le nombre de bords horizontaux dans la fenêtre et le nombre de bords verticaux dans la fenêtre remplissent un critère de région tramée.
Le critère de région tramée est donné par l'expression logique [9], qui compare le nombre de bords verticaux (nbDeBordsVerticaux) à un seuil minimal {minNombreDeBords) et le nombre de bords horizontaux (nbDeBordsHorizontaux) à ce seuil minimal.
Comme on le verra, le critère de la région tramée est satisfait lorsque le nombre de bords verticaux et bhorzontaux dépasse le seuil minimal {minNombreDeBords).
FenétreAvecArriérePlanTraméAvecouSansTexte = (nbDeBordsHorizontaux > minNombreDeBords) && (nbDeBordsVerticaux > minNombreDeBords) [9] Le seuil minimum (minNombreDeBords) dépend () de la zone de l'image couverte par la fenêtre (ZoneFenêtre) et (ii) d'un pourcentage minimum attendu des bords dans la fenêtre (minimumPourceniageBords), conformément à l'expression logique [10].
minNombreDeBords = (ZoneFenêtre * minimumPourcentageBords)/100 [10] ll sera noté que bien que la fenêtre soit de taille fixe, elle peut parfois couvrir des zones de taille différente de l'image. Par exemple, la fenêtre peut couvrir une plus petite zone de l'image lorsqu'elle est centrée sur un pixel d'angle de l'image par rapport à une fenêtre centrée au milieu de l'image. Par conséquent, le nombre de bords pouvant être contenus dans une fenêtre peut varier en fonction de la position de la fenêtre. Pour tenir compte de cette variation, il est avantageux de faire dépendre le seuil minimum de la ZoneFenêtre et/ou du minimumPourcentageBords.
Dans certains exemples, le seuil minimum (minNombreDeBords) peut être mis à l'échelle en fonction de la longueur moyenne de bord dans la fenêtre (LongueurMoyenneDeBordsDansLaFenêtre) selon, par exemple, l'expression [11]. De préférence, la longueur moyenne de bords est basée sur la longueur des bords horizontaux et/ou la longueur des bords verticaux de la fenêtre. De plus, la mise à l'échelle se produit de préférence lorsque l'image d'entrée n’est pas échantillonnée à l'étape 602.
minNombreDeBords = minNombreDeBords / (LongueurMoyenneDeBordsDansLaFenêtre y LongueurMoyenneDeBordsDansLaFenêtre) 111] A l'étape 702, un contrôle supplémentaire est effectué pour déterminer si le rapport du nombre de bords horizontaux au nombre de bords verticaux salisfait à un rapport seuil (rapportHoriVsVertiSeullEnDessousBords). Un critère approprié pour cette vérification est donné par l'expression logique [12], qui impose un rapport maximum de
1,5. Si le rapport entre le nombre de bords horizontaux et le nombre de bords verticaux est inférieur au rapport seuil, le critère du rapport seuil est respecté. Le critère du rapport de seuil peut être utilisé pour rechercher certaines formes de régions tramées. En général, les régions tramées sont rondes et le rapport de seuil peut donc être réglé pour rechercher les régions rondes où le nombre de bords verticaux devrait être similaire au nombre de bords horizontaux. Par conséquent, l'application du critère du rapport de seul! au procédé de détection des régions tramées présente l'avantage d'améliorer la précision de la détermination si une région de pixels est tramée ou non, Un autre avantage est que le rapport peut être utilisé pour éviter de déterminer faussement une ligne pointillée dans une région de l'image comme étant une région tramée, en sélectionnant un rapport seuil suffisamment bas.
rapporthoriVsVertiSeuilenDessousBords = ({nbDeBordsHorizontaux > nbDeBordsVerticaux) ? (2 * nbDeBordsHorzontaux <= 3 * nbDeBordsVerticaux) : (2 " i5 —nbDeBordsVerticaux < (3 * noDeBordsHorizontaux}}) [12] À l'étape 703, l’uniformité des pixels de la fenêtre est analysée pour déterminer si le niveau d'uniformité satisfait à un critère de seuil d'uniformité. Le niveau d'uniformité dans la fenêtre peut être déterminé en fonction des longueurs (de préférence les longueurs pondérées) des segments uniformes de la fenêtre.
Les segments uniformes et leurs longueurs sont déterminés de préférence en appliquant le procédé de détection de segment de la figure 4 à chaque rangée/colonne de pixels de la fenêtre, puis en déterminant la somme de leurs longueurs pondérées (par exemple, la somme du nombre triangulaire de leurs longueurs). Comme mentionné précédemment, une table d'intégration/tampon circulaire peut être utilisée pour déterminer la somme des longueurs pondérées.
Les pixels de la fenêtre sont déterminés comme contenant principalement des segments uniformes lorsque la somme des longueurs de segments pondérées dans la fenêtre (valeurLongueurSegment) est inférieure à un seuil maximal de longueur de segment (maxValeurLongueurSegment), conformément à l'expression [13].
SeulementPetitSegments = valeurLongueurSegment < maxValeurLongueurSegment [13]
Lorsqu'il est déterminé que les pixels de la fenêtre contiennent principalement des segments uniformes, le critère du seuil d'uniformité n'est pas rempli Inversement, la fenêtre peut être déterminée comme contenant principalement des segments uniformes lorsque valeurLongueurSegment > maxValeurLongueurSegment. Dans ce cas, le critère du seuil d'uniformité est rempli Le principe qui sous-tend la vérification des critères ci-dessus est que, si une fenêtre contient des tramages (avec ou sans texte), il n'y a généralement presque pas de segments " longs " en raison du bruit de tramage. Si l'arrière-plan est uniforme, il y aura généralement au moins quelques segments plus longs (par exemple en raison de l'espace blanc entre les lignes de texte et/ou de l'espace blanc entourant les lignes de texte). Dans le procédé de détection de segment, on verra que plus un segment s'allonge, plus son poids sera lourd. Par conséquent, de cette façon, on peut s'assurer que le critère du seuil d'uniformité sera probablement satisfait chaque fois qu'il y aura quelques segments plus longs (ou un segment très long). il sera également noté que la maxValeurLongueurSegment est conçue de telle sorte que si la fenêtre ne contient qu'un seul segment uniforme ayant la même longueur que la largeur de la fenêtre, le critère du seuil d'uniformité sera probablement satisfait. il sera également noté que la maxValeurLongueurSegment dépend de la largeur de la fenêtre, car on suppose que le procédé de détection de segment est appliqué aux lignes horizontales. Cependant, si le procédé de détection de segment est appliqué aux lignes verticales, il sera entendu que la maxValeurLongueurSegment dépendra de la hauteur de la fenêtre. ll sera également entendu que la longueur maximale admissible de segment augmentera avec la largeur et la hauteur de la fenêtre.
Dans certains exemples, de préférence lorsque l'image d'entrée n'est pas sous- échantillonnée à l'étape 602, la maxValeurLongueurSegment peut être mise à l'échelle en fonction de la longueur moyenne de bord dans la position actuelle de fenêtre, selon l'expression [14].
maxValeurLongueurSegment = maxValeurLongueurSegment {moyenneLongueurBordDansLaFenêtre * moyenne LongueurBordDansLaFenêtre) [14] Si les critères des étapes 701 et 702 sont remplis et que les critères de l'étape 703 ne le sont pas, le procédé identifie à l'étape 704 la position actuelle de fenêtre sur une région tramée de l'image d'entrée. Si l'un ou plusieurs des critères des étapes 701, 702 et 703 ne sont pas satisfaits, le procédé identifie la position actuelle de fenêtre comme étant au-dessus d'une région non tramée.
En se référant à la figure 6, lorsque l'étape 604 a déterminé que la position actuelle de fenêtre est au-dessus d'une région tramée, le procédé identifie quel pixel dans un masque d'identification de tramage est co-localisé avec le pixel centrai de la position actuelle de fenêtre à l'étape 605. Le pixel identifié est alors réglé sur noir pour marquer ce pixel comme un pixel dans une région tramée. li sera noté que le masque a la même taille et la même résolution de pixels que l'image à laquelle la fenêtre coulissante est appliquée. Par conséquent, on verra que le pixel marqué et le pixel au centre de la fenêtre à l'étape 604 partagent les mêmes coordonnées d'image.
À l'étape 606, si l'image d'entrée est échantillonnée, le procédé identifie une zone de l'image d'entrée originale (c'est-à-dire l'image d'entrée avant qu'elle ne soit échantillonnée) qui correspond à la même zone de l'image échantillonnée sur laquelle la fenêtre coulissante actuelle est placée. De cette façon, les pixels d'angle de la région identifiée seront bien sûr les mêmes que les pixels d'angle de la fenêtre. La zone identifiée sur l'image d'entrée originale est ensuite analysée à l’aide du procédé de detection de bord afin de déterminer la longueur moyenne locale de bord de cette région.
Si l'image d'entrée n'est pas échantillonnée, il sera noté que la fenêtre coulissante est déjà positionnée sur l'image d'entrée originale. Dans ce cas, l'étape d'identification peut être omise et la longueur moyenne locale de bord peut être calculée à partir des pixels de la fenêtre.
A l'étape 607, la longueur moyenne locale de bord est ajoutée à un total de toutes les longueurs moyennes locales de bord. H est noté que ce total n'est basé que sur la longueur moyenne de bord dans les régions où Von a déterminé qu'elles étaient tramées.
Lorsque l'étape 604 détermine que la position actuelle de la fenêtre est au- dessus d'une région non tramée, le procédé identifie quel pixel dans un masque d'identification de tramage est co-localisé avec le pixel central dans la position actuelle de fenêtre à l'étape 609. Le pixel identifié est alors régié sur blanc, ou toute autre couleur différente de la couleur définie à l'étape 605.
L'étape 510 détermine si la fenêtre coulissante a été centrée séquentiellement sur chaque pixel de l'image d'entrée/échantillonnée. S'il reste encore quelques pixels, le procédé procède au centrage de la fenêtre coulissante sur le pixel suivant à l'étape
608.
Une fois le procédé de la figure 6 terminé, on notera que les pixels noirs du masque d'identification de tramage indiquent les régions tramées de l'image d'entrée, et les pixels blancs indiquent les régions non tramées. C'est un avantage car cela permet aux techniques de traitement d'images ultérieures de cibler ces régions pour le traitement, Par exemple, un procédé de binarisation adaptative peut être appliqué sélectivement aux régions noires identifiées dans le masque d'identification de tramage. En outre ou alternativement, un procédé de suppression de tramage, tel qu'un procédé de lissage, peut être appliqué sélectivement aux régions de l'image qui correspondent aux régions noires dans le masque d'identification de tramage. Un exemple d'application sélective d'une fonction de lissage aux zones noires du masque d'identification de tramage est décrit à la figure 8.
Si le masque d'identification de tramage a été généré à partir d'une image échantillonnée, le masque peut éventuellement être suréchantillonné, en utilisant r’importe quel procédé standard de suréchantillonnage. Pour améliorer le masque, un certain nombre d'opérateurs morphologiques peuvent également lui être appliqués. Par exemple, un opérateur de fermeture peut être appliqué au masque pour fermer des espaces dans le masque qui sont plus petits qu'un nombre maximum donné de pixels. De plus, ou alternativement, un opérateur d'érosion peut être appliqué pour éroder les petites zones noires qui sont plus petites qu’une taille donnée. Ces petites zones noires peuvent être de fausses détections et il est donc avantageux de les supprimer. De plus ou alternativement, un opérateur de dilatation peut être appliqué pour restaurer les zones noires à leur taille originale.
La figure 8 montre un procédé d'élimination de tramage. À l'étape 801, le procédé identifie les pixels de l'image d'entrée originale qui correspondent en position avec les pixels noirs du masque d'identification de tramage - c'est-à-dire que le masque d'identification de tramage est utilisé pour déterminer quels pixels de l'image originale sont tramés.
À l'étape 802, une fonction de lissage est appliquée à chacun des pixels identifiés dans l'image originale. La fonction de lissage peut être une fonction de lissage standard. Le rayon de lissage pour contrôler le niveau de lissage appliqué par la fonction de lissage est de préférence basé sur une longueur moyenne de bord. La longueur moyenne de bord est idéalement la longueur moyenne de bord sur toutes les régions de tramage identifiées, plutôt qu'une longueur moyenne de bord sur l'ensemble de l'image - ceci est avantageux car il fournit un rayon de lissage plus précis pour lisser sélectivement les régions de tramage sur l'image. La longueur moyenne de bord peut être calculée en utilisant la longueur moyenne locale totale de bord calculée à l'étape
607. Si, toutefois, un rayon de lissage différent ou une longueur moyenne de bords différente est utilisé, HI sera noté que les étapes 506 et 607 peuvent être omises du procédé de la figure 6.
Plus généralement, il sera entendu que tout paramètre d'un procédé d'élimination de tramage qui contrôle le niveau d'élimination de tramage peut être basé sur une longueur moyenne de bord, telle que la longueur moyenne de bord dans toutes ies régions de tramage identifiées ou la longueur moyenne de bord locale dans une région de tramage identifiée.
Optionnellement, une fois l'image lissée, elle peut ensuite être binarisée. Il sera note que le procédé de lissage sélectif donnera une image binaire de meilleure qualité, qui pourra ensuite être transmise à un procédé d'OCR pour améliorer les résultats de reconnaissance de caractères. Cependant, il sera noté que les avantages des procédés décrits ici peuvent également être utiles pour d'autres techniques de traitement d'images, comme la détection d'objets. Par exemple, un masque d'identification tramé,
une image lissée ou une image binaire qui a été générée selon les exemples cités ici peuvent être utiles pour améliorer la précision d'un procédé de détection d'objet.

Claims (1)

  1. Revendications
    4. Procédé de traitement d'une image tramée comprenant une grille de pixels, le procédé comprenant les étapes consistant à : définir une matrice de pixels correspondant à une sous-région de l'image ; effectuer une détection de bord le long des lignes et des colonnes de la matrice ; compter le nombre de bords détectés le long des lignes de la matrice pour déterminer le nombre de bords horizontaux dans la matrice ; compter le nombre de bords détectés le long des colonnes de la matrice pour déterminer le nombre de bords verticaux dans la matrice ; identifier si la sous-région est tramée en fonction du nombre de bords horizontaux el verticaux dans la matrice ; le traitement sélectif de la sous-région correspondante de l'image comprend l'application d'un procédé d'élimination de tramage à la sous-région de l'image si la sous-région est identifiée comme étant tramée ; et traiter de manière sélective la sous-région correspondante de l'image selon que la sous région est identifiée ou non comme étant tramée, dans lequel la détermination de la longueur moyenne de bord dans la sous- région correspondante de l'image : l'établissement d'un paramètre du procédé de suppression de tramage pour contrôler le niveau de suppression de tramage à une valeur basée sur la longueur moyenne de bord déterminée ;.
    2. Procédé selon la revendication 1, dans lequel l'étape consistant à identifier si une sous-région est tramée consiste à déterminer si le nombre de bords horizontaux et le nombre de bords verticaux dépassent chacun un nombre seuil prédéterminé.
    3. Procédé selon la revendication 2, comprenant en outre la détermination de la longueur moyenne de bord dans la matrice, et dans lequel le nombre seuil prédéterminé est mis à l'échelle sur la base de la longueur moyenne de bord déterminée.
    4. Procédé tel que revendiqué dans l'une quelconque des revendications précédentes, dans lequel l'étape consistant à identifier si une sous-région est tramée consiste à déterminer si le nombre de bords horizontaux par rapport au nombre de bords verticaux dépasse un rapport prédéterminé.
    5. Procédé tel que revendiqué dans Pune quelconque des revendications précédentes, comprenant en outre une détection de segment de pixels similaires dans les lignes de la matrice, dans lequel la différence de valeur de pixels entre pixels voisins dans un segment est inférieure à un seuil de contraste prédéterminé ; et dans lequel l'étape consistant à déterminer si la sous-région est tramée est en outre basée sur les longueurs des segments.
    6. Procédé selon la revendication 5, dans leguel : les longueurs des segments sont pondérées en fonction de leur taille ; et l'étape consistant à identifier si la sous-région est tramée consiste à déterminer si la somme des longueurs pondérées est supérieure à un seuil de somme prédéterminé.
    7. Procédé selon la revendication 6, comprenant en outre : l'exécution d'une détection de bord le long des lignes de la matrice et la détermination de la longueur moyenne de bord dans de la matrice, et dans lequel le seuil de somme prédéterminé est mis à l'échelle sur la base de la longueur moyenne de bord déterminée.
    8. Procédé tel que revendiqué dans l’une quelconque des revendications précédentes, dans lequel le procédé d'élimination de tramage comprend l'application d'une fonction de lissage à la sous-région correspondante de l'image.
    9. Procédé tel que revendiqué dans l’une quelconque des revendications précédentes comprenant : si la sous-région est identifiée comme étant tramée, régler un pixel d'un masque à une première valeur, où le pixel défini est co-localisé avec le pixel central de la sous- région de l'image.
    10. Procédé tel que revendiqué dans l’une quelconque des revendicalions précédentes comprenant l'étape consistant à :
    si la sous-région n’est pas identifiée comme étant tramée, régler un pixel du masque à une deuxième valeur, dans lequel le pixel réglé est co-localisé avec le pixel central de la sous-région de l'image.
    11. Procédé tel que revendiqué dans l’une quelconque des revendications précédentes comprenant une étape consistant à : binariser l'image traitée pour générer une image binaire pour un traitement ultérieur.
    12. Procédé tel que revendiqué dans l'une quelconque des revendications précédentes, comprenant les étapes consistant à exécuter un procédé de détection d'objet sur l'image traitée.
    13. Procédé tel que revendiqué dans l’une quelconque des revendications précédentes, dans lequel la matrice définie de pixels est une sous-région sélectionnée de pixels de l'image.
    14. Procédé tel que revendiqué dans l'une quelconque des revendications 1 à 12, comprenant l'échantillonnage de l'image pour obtenir une image échantillonnée, et dans lequel la matrice définie de pixels est une sous-région sélectionnée de pixels de l'image échantillonnée.
    15. Procédé selon la revendication 14, dans lequel l'image est échantillonnée selon un facteur d'échantillonnage basé sur la longueur moyenne de bord des bords horizontaux et/ou verticaux dans l'image.
    16. Procédé tel que revendiqué dans l’une quelconque des revendications précédentes, dans lequel l'étape de définition d'une matrice de pixels comprend l'application d'une fonction de fenêtre coulissante à l'image/l'image échantillonnée.
    17. Dispositif de traitement d'image comprenant des moyens de traitement réglés pour traiter une image ayant une grille de pixels, de préférence avant le traitement de détection d'objet, selon le procédé tel que revendiqué dans l’une quelconque des revendications | à 16.
    18. Dispositif programmable programmé pour exécuter un procédé tel que revendiqué dans l'une quelconque des revendications 1 à 16.
    19. Produit de programme d'ordinateur adapté pour amener un dispositif programmable à exécuter un procédé dans l’une quelconque des revendications 1 à 16.
BE20195141A 2018-03-08 2019-03-07 Dispositif de traitement d’images BE1026095B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1803748.1A GB2571928B (en) 2018-03-08 2018-03-08 Dither identification and removal from dithered regions of an image

Publications (2)

Publication Number Publication Date
BE1026095A1 BE1026095A1 (fr) 2019-10-08
BE1026095B1 true BE1026095B1 (fr) 2020-11-09

Family

ID=61972711

Family Applications (1)

Application Number Title Priority Date Filing Date
BE20195141A BE1026095B1 (fr) 2018-03-08 2019-03-07 Dispositif de traitement d’images

Country Status (5)

Country Link
US (1) US11188779B2 (fr)
EP (1) EP3762864B1 (fr)
BE (1) BE1026095B1 (fr)
GB (1) GB2571928B (fr)
WO (1) WO2019170404A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020067959A (ja) * 2018-10-26 2020-04-30 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
US11308693B2 (en) * 2020-06-26 2022-04-19 Lucasfilm Entertainment Company Ltd. Smart edge loop selection
CN112530059B (zh) * 2020-11-24 2022-07-05 厦门熵基科技有限公司 一种通道闸内拉杆箱判断方法、装置、设备和存储介质
CN112183538B (zh) * 2020-11-30 2021-03-02 华南师范大学 一种满文识别方法及系统
CN114529715B (zh) * 2022-04-22 2022-07-19 中科南京智能技术研究院 一种基于边缘提取的图像识别方法及系统
CN116189194B (zh) * 2023-04-27 2023-07-14 北京中昌工程咨询有限公司 一种用于工程建模的图纸增强分割方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160913A (en) * 1998-03-25 2000-12-12 Eastman Kodak Company Method and apparatus for digital halftone dots detection and removal in business documents
US20040169890A1 (en) * 2003-02-28 2004-09-02 Maurer Ron P. Restoration and enhancement of scanned document images
EP1455304A2 (fr) * 2003-03-06 2004-09-08 Seiko Epson Corporation Procédé et appareil de segmentation de documents composés

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185334B1 (en) * 1998-01-30 2001-02-06 Compaq Computer Corporation Method for reconstructing a dithered image
US6347160B1 (en) * 1998-01-30 2002-02-12 Compaq Information Technologies Group, L.P. Increasing the bit depth of and filtering dithered images for the purpose of inverse dithering
US7221483B2 (en) * 2000-09-05 2007-05-22 Ricoh Company, Ltd. Image encoding method and apparatus, image decoding method and apparatus, image processing apparatus, image formation apparatus, and computer-executable programs
JP2004096375A (ja) * 2002-08-30 2004-03-25 Fujitsu Ltd 画像コード化装置、画像コード復調装置、方法及びプログラム
JP4773386B2 (ja) * 2007-03-19 2011-09-14 株式会社リコー 画像処理方法と画像処理装置とプログラムとコンピュータ読み取り可能な記憶媒体
KR20080110092A (ko) * 2007-06-14 2008-12-18 삼성전자주식회사 화상형성장치 및 그의 화질 개선방법
US8054506B2 (en) * 2007-07-19 2011-11-08 Samsung Electronics Co., Ltd. Image forming apparatus and image quality enhancement method thereof
JP6418788B2 (ja) * 2014-05-26 2018-11-07 キヤノン株式会社 画像処理装置及び画像処理方法、プログラム
US10037592B2 (en) * 2015-06-05 2018-07-31 Mindaptiv LLC Digital quaternion logarithm signal processing system and method for images and other data types

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160913A (en) * 1998-03-25 2000-12-12 Eastman Kodak Company Method and apparatus for digital halftone dots detection and removal in business documents
US20040169890A1 (en) * 2003-02-28 2004-09-02 Maurer Ron P. Restoration and enhancement of scanned document images
EP1455304A2 (fr) * 2003-03-06 2004-09-08 Seiko Epson Corporation Procédé et appareil de segmentation de documents composés

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MICELI C M ET AL: "INVERSE HALFTONING", JOURNAL OF ELECTRONIC IMAGING, S P I E - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, US, vol. 1, no. 2, 1 April 1992 (1992-04-01), pages 143 - 151, XP000323337, ISSN: 1017-9909, DOI: 10.1117/12.57675 *
SHIUFUN CHEUNG ET AL: "Low-memory low-complexity inverse dithering", SPIE - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING. PROCEEDINGS, vol. 3648, 22 December 1998 (1998-12-22), US, pages 529 - 540, XP055589120, ISSN: 0277-786X, ISBN: 978-1-5106-3377-3, DOI: 10.1117/12.334598 *
XIAOQING LIU ET AL: "An edge-based text region extraction algorithm for indoor mobile robot navigation", MECHATRONICS AND AUTOMATION, 2005 IEEE INTERNATIONAL CONFERENCE NIAGARA FALLS, ON, CANADA JULY 29-AUG 1, 2005, PISCATAWAY, NJ, USA,IEEE, vol. 2, 29 July 2005 (2005-07-29), pages 701 - 706, XP010913104, ISBN: 978-0-7803-9044-7 *

Also Published As

Publication number Publication date
WO2019170404A1 (fr) 2019-09-12
US11188779B2 (en) 2021-11-30
EP3762864B1 (fr) 2025-08-06
GB201803748D0 (en) 2018-04-25
BE1026095A1 (fr) 2019-10-08
US20190279018A1 (en) 2019-09-12
GB2571928A (en) 2019-09-18
GB2571928B (en) 2022-04-06
EP3762864A1 (fr) 2021-01-13

Similar Documents

Publication Publication Date Title
BE1026095B1 (fr) Dispositif de traitement d’images
BE1017547A6 (fr) Compression d&#39;images numeriques de documents scannes.
KR101403876B1 (ko) 차량 번호판 인식 방법과 그 장치
EP3572976A1 (fr) Procede de traitement d&#39;un flux d&#39;images video
EP3234913B1 (fr) Procede de detection de defaut sur une surface de pneumatique
JP5229328B2 (ja) 文字領域抽出装置,文字領域抽出機能を備えた撮像装置,および文字領域抽出プログラム
US20180182086A1 (en) Method for assessing the quality of an image of a document
Ntogas et al. A binarization algorithm for historical manuscripts
FR2905188A1 (fr) Procede et dispositif de conversion de densites d&#39;image
EP3570213A1 (fr) Procédé de reconnaissance de caractères
FR3081244A1 (fr) Procede de reconnaissance de caracteres
EP3311333B1 (fr) Appariement d&#39;images d&#39;articles postaux avec des descripteurs de singularites du champ de gradient
FR2905499A1 (fr) Appareil et procede d&#39;elimination de bruit de caracteres
JP2023179358A (ja) 1次元光学コードの読み取り
CN113920434A (zh) 一种基于目标的图像翻拍检测方法、装置及介质
FR3109831A1 (fr) Procédé pour la vérification d’un code-barre.
US8442348B2 (en) Image noise reduction for digital images using Gaussian blurring
JP3906221B2 (ja) 画像処理方法及び画像処理装置
EP4386672A1 (fr) Procede d&#39;estimation de la direction d&#39;un mouvement dans des images video
WO2017005930A1 (fr) Détection d&#39;objets par traitement d&#39;images
FR2870969A1 (fr) Dispositif, procede et programme d&#39;elimination de pores
WO2004013802A2 (fr) Procede et systeme de localisation automatique de zones de texte dans une image
Satish et al. Edge assisted fast binarization scheme for improved vehicle license plate recognition
Priyanka et al. A comparative study of binarization techniques for enhancement of degraded documents
EP3931751B1 (fr) Procédé de traitement d&#39;image assisté par ordinateur, pour la lecture d&#39;un marquage sur une surface d&#39;un support en peau d&#39;animaux

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20201109