BestImageViewer / geeqie

claiming to be the best image viewer / photo collection browser
http://www.geeqie.org/
GNU General Public License v2.0
465 stars 78 forks source link

Measure sharpness when comparing duplicate images #933

Open Harvie opened 2 years ago

Harvie commented 2 years ago

ISSUE TYPE

GEEQIE VERSION

Geeqie 1.6

OS / DISTRIBUTION

ArchLinux

SUMMARY

Geeqie can find similar (almost duplicate) photos. I think it would be great if geeqie could also measure sharpness of individual images, so i can keep only the sharpest one, while deleting similar, but slightly blurry ones.

Currently i sort images by sharpness using image magick and something like this:

for n in *.jpg; do magick "$n" -resize 25% -statistic StandardDeviation 15x15 -format '%[fx:maxima] %f\n' info:; done | sort -n

But it would make much more sense to only compare similar images, because quantity of detected edges can vary not only due to motion blur, but also between different scenes.

Harvie commented 2 years ago

I've just found that geeqie can sort photos within that group by arbitrary parameters. I've just been able to group similar photos and keep only the one with highest resolution. (i've recently got photos and thumbnails mixed together by photorec so it was very useful). This is perfect, all we need is add possibility to not only sort within the duplicate group by resolution, size, name, etc... but also by relative sharpness as given by image magick command (or something similar).

Seems that most work is done, just integrate the two solutions together.

caclark commented 2 years ago

keep only the one with highest resolution.

I assume that you are referring to sorting on the Dimensions column in the Dupes window. To compute sharpness only for the images that are currently shown in the Dupes window, and to display an extra column, would be not too bad I guess.

But someone might then ask for the same parameter to available in the Search window, which would then become a bit more difficult. Probably best just to wait until someone complains.

Seems that most work is done, just integrate the two solutions together.

Ah, someone with a sense of humour.... :-)

Harvie commented 2 years ago

Yes. Here is mockup to make it clear:

image

Problem is that such analyzing might take 10 to 120 seconds per image. You can see that in image magick command i use -resize 25% which makes things faster (more around 10 seconds per photo when working on photos from my smartphone). But i think we will need to only analyze the photos when user demands it, so we do not slow down the computer unnecessarily. Also resizing to 25% is not really smart. i think it would make more sense to resize to some fixed size, so the performance is not greatly affected by size of input photos.