Comparaison d'images
Le
Geo Cherchetout

Bonjour,
J'avais quelques centaines de photos de famille en vrac dans une boîte, dont
certaines en plusieurs exemplaires. Je les ai toutes numérisées sans me
soucier de ces multiplicités et les fichiers jpeg résultants sont dans un
répertoire "album". Existe-t-il, sous Linux, un programme capable de dresser
automatiquement une liste des images de ce répertoire qui se ressemblent ?
(Comparer visuellement chacune à toutes les autres me prendrait des heures.)
Merci d'avance pour vos suggestions.
J'avais quelques centaines de photos de famille en vrac dans une boîte, dont
certaines en plusieurs exemplaires. Je les ai toutes numérisées sans me
soucier de ces multiplicités et les fichiers jpeg résultants sont dans un
répertoire "album". Existe-t-il, sous Linux, un programme capable de dresser
automatiquement une liste des images de ce répertoire qui se ressemblent ?
(Comparer visuellement chacune à toutes les autres me prendrait des heures.)
Merci d'avance pour vos suggestions.
Le filtre ssim de ffmpeg peut te dire à quel point deux vidéos se
ressemblent. (Une photo, c'est une vidéo très courte.)
ffmpeg -i photo0002.jpg -i photo0003.jpg -lavfi ssim -f null -
J'obtiens principalement ce message d'erreur :
[Parsed_ssim_0 @ 0x23498c0] Width and height of input videos must be same.
En effet, à la différence d'images issues d'une caméra, deux photos, même
apparemment identiques, scannées l'une après l'autre, ont très peu de
chances de donner des images ayant exactement la même définition.
Merci quand-même pour la piste ffmpeg à laquelle je n'aurais jamais pensé.
La même définition, ou la même taille ?
Les deux.
Un CROP sur les photos permettrait d'avoir les mêmes résolutions (définition). Cela permettrait de les comparer avec SSIM et d'avoir u ne liste des images presque identiques.
OK, merci, on avance. Je pense aussi à une possible pixelisation
simplificatrice...
dans news:r7aage$1uq0$
le jeudi, 16 avril 2020 à 21:09:02 :
Et ffmpeg sait le faire, et je pose une question:
Est-ce possible de distinguer les photos couleur des photos noir et
blanc ?
dyrmak
--
El tren de las cinco de la mañana
++++ --- ++++
Linux operating system
++++ --- ++++
https://ffmpeg.org/ffmpeg-filters.html#toc-ssim
SSIM of the compared frames for the component specified by the suffix.
dans news:
le jeudi, 16 avril 2020 à 23:31:59 :
Merci!
dyrmak
--
Que no me extraña
++++ --- ++++
Linux operating system
++++ --- ++++
J'ai repéré deux images manifestement issues de tirages d'un même négatif et
j'en ai "resizé" une avec la géométrie de l'autre. Voici ce que dit ffmpeg :
$ ffmpeg -i 0298.jpg -i 0043.jpg -lavfi ssim -f null -
ffmpeg version 4.1.5 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8.3.1 (Mageia 8.3.1-0.20190524.1.mga7) 20190524
configuration: --prefix=/usr --enable-shared --enable-pic
--libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include
--disable-stripping --enable-postproc --enable-gpl --enable-pthreads
--enable-libtheora --enable-libvorbis --disable-encoder=vorbis
--enable-libvpx --enable-runtime-cpudetect --enable-libaom
--enable-libdc1394 --enable-librtmp --enable-libspeex --enable-libfreetype
--enable-libgsm --enable-libcelt --enable-libopus --enable-libopencv
--enable-libopenjpeg --enable-libtwolame --enable-libxavs --enable-frei0r
--enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio
--enable-libpulse --enable-libv4l2 --enable-avresample --enable-opencl
--enable-libmp3lame --enable-sndio --enable-libdav1d
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3
--enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, image2, from '0298.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 29121 kb/s
Stream #0:0: Video: mjpeg, gray(bt470bg/unknown/unknown), 1366x1974
[SAR 600:600 DAR 683:987], 25 tbr, 25 tbn, 25 tbc
Input #1, image2, from '0043.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 38144 kb/s
Stream #1:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown),
1366x1974 [SAR 300:300 DAR 683:987], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 (mjpeg) -> ssim:main
Stream #1:0 (mjpeg) -> ssim:reference
ssim -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
[swscaler @ 0x1590440] deprecated pixel format used, make sure you did set
range correctly
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: wrapped_avframe, gray, 1366x1974 [SAR 600:600 DAR
683:987], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
Metadata:
encoder : Lavc58.35.100 wrapped_avframe
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time :00:00.04 bitrate=N/A
speed=0.731x
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: unknown
[Parsed_ssim_0 @ 0x1501d80] SSIM Y:0.626271 (4.274437) All:0.626271 (4.274437)
Comment interpréter ce résultat ? Pure curiosité parce que, de toute façon,
je ne saurai jamais écrire un script capable d'automatiser les comparaisons.
Qu'est-ce que c'est que cette histoire de "deprecated pixel format" ?