Existe-t-il un programme qui pourrait analyser la résolution «réelle» d'une image?

8

Prenons l'image A: une image de 2560 * 1920 pixels parfaitement mise au point. Tranchant comme un rasoir. C'est 5 Mpix.

Prenons l'image B: l'image A redimensionnée à 5120 * 3840. C'est maintenant un fichier de 20 Mpix, mais il n'y a pas de nouvelles données dans l'image, donc - en utilisant le bon sens - ce n'est encore qu'un fichier de 5 Mpix, juste "gonflé".

Théoriquement, on devrait être en mesure de réduire progressivement les dimensions de l'image B jusqu'à ce qu'une netteté raisonnable soit détectée (en la rapprochant le plus possible de l'image A, sans toutefois les comparer à ce stade), et donc de dériver le "vrai" nombre de mégapixels de l'image: le taille en dessous de laquelle l'imagerie commence à perdre ses détails.

Cette valeur pourrait facilement être utilisée pour déterminer l'utilité d'une photo - si je la prends légèrement floue, je peux toujours l'imprimer dans un format plus petit, et personne ne le remarquera. Ou, cela pourrait aider à évaluer la qualité de l'objectif ou du capteur - si un appareil photo 24 Mpix est incapable de capturer une image avec plus de "vrai" 8 Mpix, alors quelque chose ne va pas.

Donc, aller droit au but: existe-t-il un logiciel qui fait exactement cela? Ou suis-je voué à écrire le mien?


D'un commentaire du PO à l'une des réponses:

Je dois mesurer la quantité de détails que mon scanner de transparence positive obtient réellement avant de numériser une collection d'environ 2000 anciennes diapositives et de la considérer comme numérisée. Si je le mets à 19200 dpi optique ou quelque chose comme ça, et qu'il continue de produire des images avec des détails perdus, comme, disons, un appareil photo 5 Mpix, alors je saurai que c'est mauvais.

C'est le problème réel que la question veut résoudre. Tout ce qui précède concerne une solution perçue à ce problème fondamental.

Sinus Mackowaty
la source
J'aime la question. Du point de vue des photographes, je suis d'accord avec la réponse de StephenG, mais du point de vue d'un ingénieur informatique, je ne suis pas d'accord. Mais alors la question pourrait être mieux placée chez DSP SE: dsp.stackexchange.com
pLumo
D'un commentaire de l'OP à l'une des réponses: "Je dois mesurer la quantité de détails que mon scanner à transparence positive obtient réellement, avant de numériser une collection d'environ 2000 anciennes diapositives et de la considérer comme numérisée. Si je la mets en optique 19200 dpi ou quelque chose comme ça, et il continue de produire des images avec des détails perdus, comme, disons, un appareil photo 5 Mpix, alors je saurai que c'est mauvais. " C'est le vrai problème qui doit être résolu ici. La façon dont cette question est posée est un problème X → Y. Autrement dit, le PO demande comment réaliser une solution perçue, plutôt que de savoir comment résoudre le problème racine.
Michael C

Réponses:

4

Une approche pourrait être de calculer la transformée de Fourier bidimensionnelle de l'image et d'essayer de décider de la fréquence spatiale au-dessus de laquelle la transformée (ou, par exemple, sa puissance) devient du bruit, c'est-à-dire non corrélée et petite. Je n'ai jamais rien essayé de tel, mais cela doit-il être lié d'une manière ou d'une autre à une définition rigoureuse de la résolution?

martin l smith
la source
D'accord; soit une FFT 2D soit une transformée en cosinus discrète 2D (DCT) serait l'approche la plus simple pour calculer la résolution effective d'une image. Avec cela, vous pouvez reconnaître quand la résolution est devenue limitée, qu'elle soit due à la qualité du verre, à une mise au point incorrecte, à la limitation de la diffraction, à une forte compression d'image, etc.
dgatwood
C'est ce que je pensais aussi, je pensais juste que quelqu'un avait peut-être déjà construit un outil comme ça. Cela devrait effectivement répondre à la question "cette image utilise-t-elle pleinement sa résolution", et après un certain étalonnage devrait la rendre comparable à d'autres tailles. J'irai avec celui-ci. Merci!
Sinus Mackowaty
5

Théoriquement, on devrait être en mesure de réduire progressivement les dimensions de l'image B jusqu'à ce qu'une netteté raisonnable soit détectée (en la rapprochant le plus possible de l'image A, sans toutefois les comparer à ce stade), et donc de dériver le "vrai" nombre de mégapixels de l'image: le taille en dessous de laquelle l'imagerie commence à perdre ses détails.

Vous commencez en supposant que l'image B n'a plus de détails. Mais même une région complètement plate a des détails - c'est juste qu'elle est plate.

Un manque de détails ou de changement ne signifie pas un manque de données d'image valides ou de résolution.

Cette valeur pourrait facilement être utilisée pour déterminer l'utilité d'une photo - si je la prends légèrement floue, je peux toujours l'imprimer dans un format plus petit, et personne ne le remarquera.

Cela ne fonctionnera pas comme vous le pensez.

Les gens, d'après mon expérience, ne se soucient pas autant des détails dans une image que du contenu émotionnel et / ou informationnel. Ce que l'image leur fait ressentir ou ce que l'image leur dit ou les deux.

À moins qu'une image soit d'une netteté exceptionnellement faible, elle est généralement OK dans un certain but. Les seules personnes, selon mon expérience, qui se soucient de la mise au point parfaite sont les photographes et les rédacteurs en chef des médias (et les rédacteurs deviennent moins exigeants ces jours-ci).

J'ai eu une fois (techniquement) une mauvaise photo de la fille d'un parent qui avait un flou de mouvement, un tremblement de l'appareil photo, une mauvaise mise au point et un mauvais éclairage.

Il est accroché à leur mur de photos depuis plus d'une décennie. Aucune protestation de ma part ou offre de le tirer à nouveau n'a jamais fonctionné, BTW. Ils aiment cette photo.

La valeur d'une image n'est pas définie par sa netteté ou ses détails résolus, sauf dans des paramètres commerciaux très particuliers et même là, ce n'est pas la priorité. Aucun rédacteur en chef ne se souciera du peu de détails qu'il y a réellement dans, par exemple, ce cliché "exclusif" d'une célébrité en vacances ou, en fait, d'une victime du dernier scandale.

Ou, cela pourrait aider à évaluer la qualité de l'objectif ou du capteur -

Ils ont des tableaux de résolution pour cela. Ce sont des modèles fixes bien définis et adaptés à l'analyse informatique. Jetez un coup d'œil sur le site Web de DxOMark.

Tester la résolution contre tout sauf une cible bien définie et connue avec précision est inutile.

si un appareil photo 24 Mpix est incapable de capturer une image avec plus de "vrai" 8 Mpix, alors quelque chose ne va pas.

Ce n'est pas parce qu'un capteur ne capture pas plus de détails qu'il n'y a rien de mal en dehors de vos attentes.

Les détails saisis dépendent de nombreux facteurs. D'abord l'existence du détail. Ensuite, les conditions de prise de vue, l'ouverture et les caractéristiques optiques de l'objectif. L'éclairage, la vitesse d'obturation, l'ISO et les caractéristiques de bruit. Limitations de diffraction.

La réalité est que le nombre de pixels a beaucoup moins à voir avec la quantité de détails que vous obtenez vraiment lors de la prise de vue que de nombreux autres facteurs qui limitent ce qui est possible ou pratique.

StephenG
la source
3
Bien que beaucoup de vos points soient valables, ils ne répondent qu'à des cas spécifiques des utilisations possibles que j'ai mentionnées. Les dégradés simples et sans relief sont évidemment incommensurables en utilisant les méthodes que j'imagine, mais c'est un cas marginal. Les tableaux de résolution n'aideront pas avec les lentilles endommagées ou mal calibrées. Le «mégapixel perceptuel» de DxOMark a été largement contesté. Bien sûr, les images légèrement floues sont parfois tout aussi utiles, mais qu'en est-il des images vraiment floues? Ils peuvent être transformés en miniatures ou autres miniatures, mais cela est généralement déterminé "à l'œil", alors qu'il peut être calculé dans une certaine mesure.
Sinus Mackowaty
Si vous voulez particulièrement le faire, faites une recherche sur le Web pour "mesurer la netteté de l'image" qui vous donnera des liens vers des articles de recherche sur ce sujet. Si vous n'êtes pas enclin aux mathématiques, je vous suggère de sauter ceci. Vous pouvez rechercher du code open source pour cela, mais je n'en connais pas moi-même.
StephenG
2
Et, pour ajouter un autre point à l'argument "surfaces planes": c'est exactement ce que je veux dire, à titre d'exemple. Une photo d'une surface plane sans beaucoup de bords et de détails pourrait, techniquement, être prise avec un appareil photo beaucoup plus pauvre, sans aucune perte de qualité. Dans un cas pratique spécifique, je dois mesurer la quantité de détails que mon scanner de transparence positive obtient réellement, avant de numériser une collection d'environ 2000 anciennes diapositives et de la considérer comme numérisée. Si je le mets à 19200 dpi optique ou quelque chose comme ça, et qu'il continue de produire des images avec des détails perdus, comme, disons, un appareil photo 5 Mpix, alors je saurai que c'est mauvais.
Sinus Mackowaty
1
Si je découvre que le scanner que j'ai est de la merde et que je pourrais faire mieux en en achetant un autre, je perdrai beaucoup de temps à construire les mécanismes d'automatisation, quels qu'ils soient. Je préfère ne pas me maudire pour toujours pour avoir foiré la seule fois où je vais me débrouiller pour passer au travers :)
Sinus Mackowaty
1
"(et les éditeurs deviennent moins exigeants ces jours-ci)." Seulement quand ils ne paient pas pour l'image.
Michael C
1

Après quelques expériences, j'ai fini par faire une série d'images à échelle réduite, à l'échelle supérieure et par rapport à l'original. S'il y avait une différence maximale significative dans les valeurs de pixels, la qualité est considérée comme perdue. S'il y a peu de perte, cela signifie que la photo originale n'était pas géniale au départ. Je posterai un extrait PHP plus tard.

Malheureusement, les images qui sont floues directionnellement ou qui sont floues mais qui ont des artefacts nets du traitement finissent par être jugées nettes - et je ne pense pas qu'il y ait un moyen de contourner cela.

Sinus Mackowaty
la source
Quel type de rééchantillonnage avez-vous fait lors de la mise à l'échelle? Voisin le plus proche, interpolation linéaire, interpolation quadratique, gaussienne, Dodgson ou autre chose?
Michael
@Michael: IIRC, j'ai utilisé le linéaire pour des raisons de simplicité.
Sinus Mackowaty