4

Comment réduire les effets de moiré lors du sous-échantillonnage des images de bandes dessinées en demi-teintes lors d'un zoom en direct sur un iPhone ou un iPad?Réduction du moiré lors du sous-échantillonnage des images de bandes dessinées en demi-teinte

Je suis en train d'écrire un lecteur de bandes dessinées. Ce serait bien de fournir des images à plus haute résolution et de permettre à l'utilisateur de faire un zoom avant tout en lisant la bande dessinée. Cependant, mon client est opposé aux effets de moiré et n'acceptera pas cette fonctionnalité s'il y a des artefacts de moiré visibles pendant le zoom, ce qui est bien sûr le cas.

Modifier les images pour qu'elles soient moins sensibles au moiré ne fonctionnerait que si les modifications n'étaient pas perceptibles. Le flou était spécifiquement interdit, tout comme tout ce qui supprime les points de demi-teintes bien-aimés.

Les images sont des demi-teintes en noir et blanc et des dessins au trait. Les originaux sont de 600 dpi, mais ce que nous expédions avec l'application sera la moitié de celle-ci, donc probablement 2500 pixels ou moins.

Alors, quelles sont mes options? Si j'écris un algorithme de downsampling personnalisé serait-il assez rapide en temps réel sur ces appareils? Y a-t-il d'autres astuces que je peux faire? Serait-ce juste d'éviter les ratios de taille qui ont le plus d'effets moirés visuels? Lorsque vous effectuez un zoom avant, il y a certainement des pics où les effets de moiré sont les pires. Existe-t-il un moyen de calculer ce que sont ces points et de zoomer sur une échelle proche qui n'est pas aussi mauvaise?

Toutes les suggestions sont les bienvenues. J'ai très peu d'expérience avec le traitement de l'image et du signal, mais j'apprécie l'opportunité d'apprendre. Je ne sais rien des ondelettes et de l'acutance et d'autres jargons, alors s'il vous plaît soyez verbeux.

Edit:

Pour l'instant au moins, nous sommes sur barques à fond plat zoom dynamique. Nous prendrons en charge le zoom pour un agrandissement complet, mais pas une mise à l'échelle arbitraire. J'espère revoir cela à l'avenir.

Répondre

1

Problème difficile, en général, intéressant en particulier. Je doute qu'il existe une solution bien simple - peut-être si l'on peut supposer un demi-ton presque idéal (images monochromes avec des points de demi-tons placés dans une grille parfaite), mais cela ne marcherait guère pour une image numérisée.

Si vous êtes intéressé par les mathématiques et/ou si vous voulez une bibliographie à la recherche, this thesis pourrait être utile (je l'ai pas lu)

vous pouvez également rechercher détramage algorithmes, plugins, etc, pour avoir des idées.

+0

Je pense que vous pouvez supposer des images monochromes avec des demi-teintes idéales. Ceux-ci ne ressemblent pas à des images numérisées. – drawnonward

+0

L'espacement est identique partout, mais les grilles dans différentes régions de remplissage ne sont pas alignées. – drawnonward

+0

Eh bien, si l'espacement est parfaitement identique (et parfaitement aligné avec l'axe - cela n'a de sens que si le demi-teint est fait numériquement), un rééchantillonnage avec une distance égale à la séparation des points (ou un multiple) devrait suffire. – leonbloy

3

Les effets de moiré se produisent en raison de l'aliasing. Le repliement est dû à une fréquence d'échantillonnage trop faible par rapport au contenu fréquentiel du signal/de l'image.

Je ne vois vraiment pas comment éviter cela sans appliquer de flou. Si vous choisissez assez bien votre filtre de flou, vous devriez pouvoir obtenir des résultats qui ne semblent pas "flous" du tout.

Puisque le flou est simple à implémenter, j'implémenterais le downsampling avec flou et le montrerais au client. S'ils sont satisfaits des résultats, alors tout devrait bien se passer.

Les seules autres options que je vois est:

  1. méthode personnalisée sous-échantillonnage. À moins que quelqu'un d'autre n'en ait trouvé un, je ne pense pas que ce soit une option, puisque vous prétendez vous-même avoir peu d'expérience avec le traitement d'image/de signal.

  2. Convertissez les bandes dessinées au format vectoriel pour obtenir un zoom infini.

+0

Le flou conditionnel et les graphiques vectoriels sont deux bonnes options. – drawnonward

+0

À l'avenir, si j'ai plus de temps pour travailler dessus, j'essaierai la mise à l'échelle du flou. La distribution d'illustrations vectorielles n'était malheureusement pas une option. – drawnonward

Questions connexes