Proposition d'aide aux scanneurs

Venez discuter ici des anciennes revues informatiques.

Modérateurs : XavierSnp, Soily, Princeps.Bonus, Fred_G, retro_lover

Avatar du membre
Sqilr
Paladin
Messages : 26
Enregistré le : 29-11-2006 21:06
Localisation : Valenciennes

Re: Proposition d'aide aux scanneurs

Message non lu par Sqilr »

J'ai testé le programme avec plus d'une page et j'ai repris conscience d'un petit problème : les Mega Force sont plus ou moins imprimés de travers. Le résultat est, du coup, pas vraiment satisfaisant. Mais je suis peut être maniaque aussi.

C'est dommage mais je garde le programme sous le coude pour d'autres mags.

Et bon anniv au pater de retouches.
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

En fait tous les mags sont plus ou moins imprimés de travers... la découpe des pages n'est pas super précise.
C'est pour ça que j'ai mis une fonction de rotation automatique dans mon programme.
Mais si elle te gène, tu peux la désactiver.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Bonsoir à tous, j'avais lancé ce topic en cherchant un peu d'aide. J'avoue ne pas avoir tout compris au programme, même si l'idée et le concept est très bien pensé.
Quelqu'un pourrait-il m'aider avec une page sample scannée : http://www.sendspace.com/file/6y83to ... afin de la pivoter pour qu'elle soit droite. Merci de votre aide !
Pierre (tnoise79)
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Bien sûr, je précise qu'il s'agit d'une feuille d'exemple, mais comme j'en ai plusieurs centaines ainsi, je voudrais utiliser comme il faut le programme de "retouche" afin d'effectuer une tâche automatique (et non feuille par feuille).
Si vous arrivez à un résultat (quitte à découper les bords après, j'aimerais surtout que ce soit bien orienté).
Merci !
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

C'est vrai que la rotation n'est pas très simple à régler... Je vais jeter un oeil à ta page et rajouter un paramètre au programme pour qu'il sauve aussi tous les écrans intermédiaires (ceux que j'ai mis dans ma première doc).
Entre temps, j'avais fait une version 2.2 qui était 2 fois plus rapide, mais je n'ai pas les modifs ici... Donc je vais repartir de la version 2.1...
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Un grand merci ! Si tu arrives à régler les paramètres pour pivoter cette page et m'expliquer clairement la façon de procéder avec cette image TIFF non compressé N/B, ce serait très aimable à toi.
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

J'ai essayé retouche pour ton image, et la rotation a l'air de marcher, mais il y avait un bug dans la lecture des TIFF noir et blanc qui inversait le noir et le blanc.

Si tu trouves que la rotation ne marche pas, bien, ça vient peut-être du fichier de config. Dans le mien, j'ai les valeurs suivantes:

DETECT_WIDTH=20
DETECT_DIFF=25
VISION_LIMIT1=64
VISION_LIMIT2=3
VISION_WIDTH1=16
VISION_WIDTH2=16
VISION_WIDTH3=128
VISION_ANGLE=3.0
BLUR_RADIUS=3
BLUR_LIMIT=50
REPERTOIRE1="c:\t\"
REPERTOIRE2="c:\trot\"

Je viens de déposer sur le ftp la version 2.3 du programme où le bug de lecture du TIFF est corrigé, et les 2 sources qui ont changé.

Dans cette version j'ai rajouté 2 options:
/c permet de spécifier le nom du fichier de config que l'on veut utiliser. Par exemple:
retouche /c"config2.txt" 2008-06-13-21-40-33-01.tif
Si on ne précise pas de nom, le programme essaye d'ouvrir le fichier config.txt, ou prend des valeurs par défaut.

La deuxième option /f permet de sauvegarder les résultat des filtres utilisés pour trouver l'angle de rotation. Quand on l'utilise, le programme sauvegarde des fichiers "retouche_filtre*.tga" dans le répertoire 2 qui est spécifié dans le fichier de config. Elle ne prend pas de paramètres particuliers, il suffit de taper, par exemple:
retouche /f 2008-06-13-21-40-33-01.tif
Le but de ces filtres est de trouver les lignes horizontales les plus longues possible (dans ton image, c'est les lignes des portées).
Le programme commence par transformer l'image en niveaux de gris, si elle est en couleurs.

Ensuite, le premier filtre extrait les contours "verticaux" de l'image (voir l'image retouche_filtre1.tga). C'est à dire que pour chaque pixel de l'image, il compare la luminosité de ce pixel avec celui qui est juste en desous. Si la différence de luminosité dépasse un certain seuil, on met un pixel blanc, sinon, on met un pixel noir.
La valeur de ce seuil est réglable avec le paramètre VISION_LIMIT1. Pour les images en noir et blanc, cette valeur n'a pas d'effet. Mais pour les images en tons de gris, ou les images en couleurs qui ont été converties en tons de gris par le programme, elle permet de faire la différence entre les zones contrastées (généralement le texte noir sur un fond blanc) et les zones où la luminosité varie plus lentement (les dégradés, les variations dans la même "zone" d'une photo, etc).

Maintenant qu'on a les contours, on essaye de garder uniquement les lignes horizontales et d'éliminer les points parasites, et les contours verticaux. Si tu compares les images retouche_filtre1.tga et retouche_filtre2.tga, tu constateras, qu'entre les deux, il y a eu un espèce de "flou horizontal" qui a été fait. En regardant d'un peu plus près la partie en haut à gauche de l'image (avec un zoom de 100 % pour voir tous les pixels), tu peux voir que tous les points parasites sur le bord gauche de l'image ont disparu. Les contours "verticaux" des notes et de la clé de sol ont aussi disparu. Il ne reste plus que quelques petits bouts de lignes parasites.
Voici la méthode que le programme emploie pour créer cette image à partir de l'image du filtre 1:
- sur chaque ligne de l'image, on déplace horizontalement une "fenêtre" de 16 pixels de large.
- dans cette fenêtre, on compte le nombre de pixel blancs (dans l'image filtre1).
- si ce nombre est supérieur ou égal à 3, on met un pixel blanc dans l'image filtre2.
J'aurais peut-être pu utiliser une méthode un peu plus simple à expliquer pour obtenir le même effet. L'idée principale est de faire une sorte de "flou" pour éliminer les points isolés, et garder les parties où il y a beaucoup de points qui se suivent.
La taille de la fenêtre est définie par le paramètre VISION_WIDTH1, et le nombre de points qu'on doit trouver dans la fenêtre est défini par VISION_LIMIT2.
A ce stade, on pourrait éliminer plus de "petites lignes" parasites en augmentant VISION_LIMIT2, mais de toute façon, elles seront éliminées par le filtre 5...
Augmenter ou diminuer VISION_WIDTH1 permet d'avoir une image plus "floutée" ou plus proche de l'image filtre1. La valeur que j'ai mise par défaut est peut-être un peu grande, mais elle permet de faire une partie du travail du filtre suivant.

Pour calculer l'angle de rotation avec précision, on essaye de trouver les lignes horizontales les plus longues possible. Mais quand on regarde l'image filtre2 de plus près, on se rend compte que les lignes des portées ne sont pas tout à fait continues. Il y a des petits trous ici et là.
Le but du 3ième filtre est de boucher ces trous. Si tu regardes bien l'image filtre3 par rapport à l'image filtre2, tu verras que des petits segments gris sont apparus pour continuer les lignes blanches.
Cette étape peut poser un petit problème: les segments gris peuvent relier deux lignes qui sont l'une au-dessus de l'autre, mais au final, ça fait une différence de quelques pixels sur une ligne qui fait pratiquement la largeur de l'image, et on a quand même une bonne précision.
Le seule paramètre qu'on peut régler pour cette étape, c'est VISION_WIDTH2, qui représente la taille maxi des "trous" qui peuvent être bouchés (en pixels).

Pour calculer les angles des lignes, c'est plus simple si elle ne font qu'un pixel d'épaisseur.
Donc, le filtre 4 s'occupe de supprimer les épaisseurs inutiles.
Il n'y a rien à régler pour ce filtre.

Le dernier filtre s'occupe de ne garder les lignes les plus longues et les moins penchées.
Sur l'image filtre5, les lignes en gris sont celles qu'on a éliminé. on ne garde que les lignes blanches, et on fait la moyenne de leurs angles.
Pour ce filtre, il y a deux paramètres:
- VISION_WIDTH3 qui est la longueur minimum des lignes qu'on garde.
- VISION_ANGLE qui est l'angle maximum qu'on autorise (en degrés). Si une ligne a un angle supérieur par rapport à l'horizontale, elle ne sera pas prise en compte dans le calcul de l'angle moyen.
Si ta page est trop penchée, tu peux essayer d'augmenter VISION_ANGLE. Mais il ne faut pas trop abuser avec cette valeur, sinon, tu risque de prendre en compte des lignes qui ne correspondent pas à l'horizontale, et la moyenne calculée sera moins précise. De toute façon, si ta page est vraiment trop penchée, les autres filtres risquent de ne pas donner de bons résultats.
Je pense que la valeur par défaut (+ ou - 3 degrés) est suffisante pour la plupart des pages si tu scannes avec un minimum de soin.
Si tu trouve que trop de lignes parasites sont prises en compte, tu peux essayer d'augmenter VISION_WIDTH3. Mais il faut aussi garder à l'esprit que moins il y a de lignes prises en compte, et moins la moyenne aura de chances de représenter l'ensemble de la page. En tout cas, il vaut mieux éviter de mettre une valeur plus grande que la moitié de la largeur de l'image, sinon, tu risque de ne plus prendre en compte aucune ligne, et il n'y aura pas de rotation.

Si tu ne travailles qu'avec des images en noir et blanc, le flou qui est dans le programme n'est pas très utile. Si tu veux gagner du temps, tu peux le désactiver. Il suffit d'ajouter "FLOU=N" dans le fichier de config.
Tu peux aussi désactiver les autre parties du programme (le recadrage, les sauvegardes, etc) comme c'est expliqué dans la doc de la dernière version.

Enfin, pour automatiser le traitement, comme je l'ai déjà dit, il suffit de modifier r.bat.
Tu mets r.bat, retouche.exe, le fichier de config et toutes tes images dans le même répertoire.
Et tu modifie r.bat avec un éditeur de texte pour qu'il ressemble à ça (si tu utilise des images en TIFF):
for %%i in (*.tif) do retouche "%%i"

Ensuite, il suffit d'ouvir une fenêtre DOS, de te mettre dans le bon répertoire, et de taper r.
Les résultats seront sauvés dans les répertoires que tu auras défini dans le fichier de config.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Je viens de suivre tes instructions à la lettre. Cela a bien fonctionné, c'est encourageant.
J'ai bien modifié le fichier BAT également, mais est-ce normal que je me retrouve avec un fichier TGA à la sortie (sur base d'un TIF à la base)?
(Merci en tout cas).
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

Oui, c'est normal. Le programme ne sauve les images qu'en TGA (je n'ai pas eu le courage d'écrire les routines pour le TIFF).
Si tu as vraiment besoin d'un autre format, (BMP, TIFF, etc), je peux le rajouter.
Sinon, tu peux utiliser IrfanView pour convertir les images automatiquement.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

En réalité, ça ne me dérange pas d'avoir un autre format (comme TGA) mais le seul hic est que la taille du fichier final est 10x plus important.
En fait, mon fichier d'origine est en N/B (donc 1bit) et j'aimerais que celui de sortie le soit aussi. Or ici il devient en 8bits je crois. Est-ce néanmoins possible?
Merci.
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

Je verrai ce que je peux faire la semaine prochaine
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Merci, cela m'aiderait beaucoup (avec mes milliers de feuilles)... Bon week-end...
Pierre (tnoise79)
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Ayant découvert ce programme, il est excellent et très prometteur.
J'aimerais donc obtenir 2 requêtes :

- 1. obtenir les marges en blanc (et non en gris)
- 2. pouvoir traiter des TIFF en 2 couleurs (N/B) et que le fichier de sortie soit au même format (ou en tout cas en N/B et pas en niveaux de gris).

Une fois ces 2 modifications, ce sera un réel plaisir de traiter mes fichiers. Merci encore.
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

Je viens de déposer une nouvelle version sur le ftp. Elle est plus rapide, et il y a une option (/b) pour sauvegarder les images en TIFF Noir et blanc.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Ah super, merci. Je vais l'essayer de suite.
Y a-t-il une option pour avoir les marges en 'blanc' (et non en gris), lors de l'orientation de la page?
Merci.
Pierre (tnoise79)
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

De mieux en mieux, en effet, depuis l'option 2couleurs (N/B), je n'ai plus de marge grise, elle sont bien blanches.
Par contre, est-ce normal que, quand j'ai une marge blanche (espace blanc) trop importante (qqs cms en-dessous de la page), il me découpe fortement le bas de page ?
Pierre.
Pierre (tnoise79)
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

Ah cette fois, en modifiant un peu le fichier de config, je suis arrivé au résultat que j'espérais.
Denière question, est-il possible de forcer un angle supérieur au résulat analysé ?
(par ex, si le programme détecte 0.21° vers la gauche, et mettre +0.05 à chq fois), est-ce possible?
Thanks. Pierre.

(ps : il te reste à construire une interface GUI et le commercialiser, pour moi c'est très pro)
Pierre (tnoise79)
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

Je vais voir ce week-end pour rajouter un angle.
Je pense que l'imprécision dans el calcul de l'angle de rotation provient principalement des paramètres du 2ième filtre... Un jour j'essayerai de trouver un filtre plus approprié (un flou plus classique par exemple).

Pour la couleur qu'il utilise pour remplir les coins pendant la rotation, c'est la couleur qu'il a détectée comme étant la couleur de "fond".
Par défaut, le programme fait la moyenne des pixels de la colonne la plus à droite de l'image, mais on peut lui dire de prendre un autre coté.
Naturellement, ça joue sur le recadrage, puisque c'est pour ça que la couleur de fond est calculée à la base...
Je rajouterai aussi un paramètre pour qu'on puisse mettre la couleur qu'on veut.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
Fred_G
Legendary
Messages : 1786
Enregistré le : 01-04-2006 18:52
Localisation : Rodemack (57), Choisy-le-Roi (94)
Contact :

Re: Proposition d'aide aux scanneurs

Message non lu par Fred_G »

Je suis en train de faire une interface graphique pour retouche. C'est pas une mince affaire...
Elle devrait être finie au plus tard ce week-end.
Always listen to experts. They'll tell you what can't be done, and why. Then do it.
-Colin Plumb, comp.sys.amiga
Avatar du membre
tnoise79
Legendary
Messages : 629
Enregistré le : 08-05-2006 09:38

Re: Proposition d'aide aux scanneurs

Message non lu par tnoise79 »

C'est peut-être assez difficile d'entreprendre cette interface.
Mais je pense que tu pourrais commercialiser, par après, cette version de "Retouche" dont tu pourrais aussi changer le titre.
Je pense que pas mal de personnes seraient intéressées par ces fonctions.
Pierre (tnoise79)
Répondre