Algorithme pour faire des images en demi-teintes?
Qu'est ce qu'un bon algorithme pour faire demi-teinte des images (comme cette)? Une rapide recherche sur google apporte un tas de papiers sur le sujet, mais il est difficile de juger de qui est bon, efficace, etc. Est-il un meilleur choix à faire ce genre de chose?
source d'informationauteur Paul Wicks
Vous devez vous connecter pour publier un commentaire.
souhaitez des "points", séparés par des.
pixel groupe dans ce domaine.
la zone du point est égale à la
pour cent du blanc au Noir de la
intensité moyenne.
Penser à de la Pixels groupes comme une grille hexagonale. Utiliser un cercle en fonction de décider lequel les pixels aller dans le groupe. Vous pouvez régler le chevauchement des cercles pour régler le noir/saturation de la sortie. C'est vraiment conçu pour la haute résolution en sortie d'impression. Si vous faites cela à l'affichage sur l'écran comme un effet visuel assurez-vous d'utiliser un anti-aliasing cercle de dessin de routine pour compenser la faible résolution de l'écran. (Par rapport à l'impression, même HD n'est pas vraiment élevé.)
Si vous le faites parce que vous aimez l'effet, c'est cool. Mais si vous voulez juste à tergiverser jusqu'à une image en noir et blanc envisager d'utiliser un "Floyd-Steinberg" dither. Il fournit des résultats de haute qualité et distribue de l'erreur dans l'image.
http://en.wikipedia.org/wiki/Floyd-Steinberg_dithering
Demi-teinte est très efficace.
Seul niveau en demi-teinte:
Entrée: Pixels de votre image; preconstructed "écran" contenant les valeurs de seuil.
Au moment de l'exécution: Pour chaque canal de couleur, pour chaque pixel, sélectionnez une valeur de seuil (indice de seuil de tableau modulo les dimensions du tableau). Une comparaison entre le pixel et le seuil détermine si la valeur de sortie est sur on ou off.
Elle généralise à multi-niveau de sortie ainsi, par l'utilisation de plusieurs écrans.
La partie intéressante est la construction des écrans (seuil de tableaux). Il y a beaucoup de variations-cluster point (AM), stochastique (FM), de nombreuses variations et les hybrides, y compris le bruit bleu et vert de bruit (AM/FM). Et généralement vous voulez un écran différent pour chaque canal de couleur. Le traditionnel cluster dot écrans pondent leurs points dans les grilles rectangulaires qui peuvent être décrits par leur fréquence (low frequency = gros points) et l'angle (généralement de 15° pour le Cyan, 75°, de Magenta, de 90° pour le Jaune et 45° pour le Noir).
Si vous voulez expérimenter, Photoshop Bitmap avec trame de demi-teintes de la Méthode (voir ce tutoriel) dispose d'un écran interne du générateur et de l'écran, une image en niveaux de gris en une image bitmap comme dans votre exemple.
Les méthodes de tramage suggéré par d'autres impliquent de plus par pixel calcul, et le résultat ne ressemble pas à votre cluster point projeté en demi-teinte exemple.
Il y a beaucoup de open source implémentations des algorithmes pour créer des images en demi-teintes. Vous pouvez prendre un coup d'oeil à la source des codes. Ci-dessous sont présentés quelques implémentations développé en Java en utilisant Marvin Framework De Traitement D'Image.
image d'entrée:
Erreur De Diffusion (source):
Rylanders (source):
Tramage (source):
Cercles (source):
La façon la plus simple pour ce faire est d'aller pixel par pixel et l'utilisation de l'aléatoire:
pour chaque pixel, la probabilité de la coloration de retour = obscurité de la couleur d'origine.
Qui peut vous donner une des deux lignes algorithme de dithering. Il ne va pas aussi agréable à regarder que de Floyd-Steinberg (parce que l'on garde une trace des erreurs), ou artistique, comme la "tuile et puis mettre les disques dans chaque tuile de sorte que la fraction de noir = moyenne de l'obscurité dans les tuiles d'origine", mais il fonctionne très bien dans la pratique.