Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/03/2020, à 10:17

moko138

Comment comparer 2 jpg visuellement semblables?

Bonjour,
Hier j'ai créé deux jpg, deux variantes d'un même scan..
Les 2 fichiers paraissent visuellement identiques mais diffèrent légèrement par le poids :
       122 817  octets pour l'un ;
       122 440  octets pour l'autre.

moko@pc:/Data_nnnnn/rep2/rep3$ identify gladiateur.JPG
         gladiateur.JPG JPEG 860x732 860x732+0+0 8-bit DirectClass 123KB 0.000u 0:00.000
moko@pc:/Data_nnnnn/rep2/rep3$ identify gladiateur-framapic.JPG
gladiateur-framapic.JPG JPEG 860x732 860x732+0+0 8-bit DirectClass 122KB 0.000u 0:00.000
moko@pc:/Data_nnnnn/rep2/rep3$ 

   .
Je souhaitais détecter toutes les différences. Et je croyais diff adapté à ce but, mais mes tentatives échouent :
Avec diff, j'obtiens seulement

Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents

sans autre détail, malgré des options variées :

moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG --suppress-common-lines --side-by-side
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG --suppress-common-lines 
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG --normal --suppress-common-lines 
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG --normal
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG  --paginate
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff gladiateur.JPG  gladiateur-framapic.JPG --suppress-common-lines --side-by-side
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG --suppress-common-lines --side-by-side
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ diff --from-file=gladiateur.JPG  gladiateur-framapic.JPG -u
Les fichiers binaires gladiateur.JPG et gladiateur-framapic.JPG sont différents
moko@pc:/Data_nnnnn/rep2/rep3$ 

   .
Est-ce que j'ai raté une option ?
Est-ce que diff n'est pas l'outil adapté à mon but ?

Merci d'avance.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#2 Le 06/03/2020, à 11:06

Nasman

Re : Comment comparer 2 jpg visuellement semblables?

Tu recherches les différences de la qualité de numérisation ou réellement entre tes deux fichiers ?
Les deux fichiers sont compressés, il suffit par exemple qu'un pixel sont différent entre les deux scans et cela peut impliquer de nombreux octets du fichier compressé.
Je pense déjà que comprendre les différences que l'on peut avoir entre deux scans en bmp donnera des infos sur la reproductibilité d'une numérisation (bruit de l'électronique, usure de la lampe...).


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#3 Le 06/03/2020, à 16:57

moko138

Re : Comment comparer 2 jpg visuellement semblables?

En fait, un unique scan en .tiff est à l'origine des 2 .jpg.

Initialement j'étais préoccupé parce que je croyais que la différence avait été introduite pendant les phases de téléversement, hébergement et téléchargement ; ce que je trouvais un peu fort de café.
  D'où mon souci de voir ce qui avait été modifié.

Mais ensuite, je me suis rappelé que j'avais appliqué deux traitements différents pour obtenir les deux .jpg et donc qu'il n'y avait pas lieu d'être inquiet.


Ce qu'il reste
  Je voudrais savoir obtenir une sortie en mode texte de toutes les lignes différentes entre deux variantes d'un fichier.
Quelquechose comme

ligne 0099
version-A
Titi a marché
version-B
Titi et Toto ont marché

   .
ou bien en trois colonnes :

                version-A                    version-B
N° de ligne
ligne 0099      Titi a marché                  Titi et Toto ont marché

Pour l'instant, je n'y arrive pas.

Peut-être que diff ne sait le faire que pour des fichiers en mode texte, comme les scripts ?


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#4 Le 06/03/2020, à 18:55

kamaris

Re : Comment comparer 2 jpg visuellement semblables?

Oui, diff est fait pour les fichiers texte : il n'y a pas de notion de ligne dans un fichier binaire.
Tu as la commande compare qui peut faire pas mal de choses apparemment : https://askubuntu.com/a/209548

Hors ligne

#5 Le 06/03/2020, à 19:02

pingouinux

Re : Comment comparer 2 jpg visuellement semblables?

Bonjour,
Pour info, la commande cmp compare les fichiers octet par octet, mais ça ne t'aidera pas beaucoup dans ton cas.

Hors ligne

#6 Le 06/03/2020, à 23:50

moko138

Re : Comment comparer 2 jpg visuellement semblables?

Merci beaucoup à tous !  big_smile

Alors, les analyses

1) Analyse par "compare -metric", option "PSNR" (du paquet imagemagick)
Il faut d'abord créer une 3ème image, différentielle :

compare -compose src  gladiateur.JPG  gladiateur-framapic.JPG  gladiateur-difference.png

(La 3ème image est un ensemble monochrome de taches).
   .
Ensuite, la comparaison proprement dite :

compare -verbose -metric PSNR  gladiateur.JPG  gladiateur-framapic.JPG  gladiateur-difference.png
gladiateur.JPG JPEG 860x732 860x732+0+0 8-bit DirectClass 123KB 0.050u 0:00.059
gladiateur-framapic.JPG JPEG 860x732 860x732+0+0 8-bit DirectClass 122KB 0.050u 0:00.059
Image: gladiateur.JPG
  Channel distortion: PSNR
    red: 42.0306
    green: 43.4438
    blue: 37.2737
    all: 40.0694
gladiateur.JPG=>gladiateur-difference.png JPEG 860x732 860x732+0+0 8-bit DirectClass 1.282MB 0.370u 0:00.329
moko@cr:/rep1/rep2/tmp$

   .
2) Analyse par idiff (du paquet openimageio-tools)
Cette fois, pas besoin d'image différentielle :

idiff gladiateur.JPG  gladiateur-framapic.JPG
Comparing "gladiateur.JPG" and "gladiateur-framapic.JPG"
  Mean error = 0.00468923
  RMS error = 0.00992019
  Peak SNR = 40.0696
  Max error  = 0.176471 @ (582, 630, B)
  303718 pixels (48.2%) over 1e-06
  303718 pixels (48.2%) over 1e-06
FAILURE
moko@cr:/rep1/rep2/tmp$

   .
Les résultats sont certes très différents de diff appliqué à des scripts !

= =


Et pour le plaisir, vous retrouverez le dessin d'Albert Uderzo - gloire à lui ! - gladiateur.JPG, et la confection du .jpg, en ./viewtopic.php?pid=22231686#p22231686.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne