Escaliers.  Groupe d'entrée.  Matériaux.  Des portes.  Serrures.  Concevoir

Escaliers. Groupe d'entrée. Matériaux. Des portes. Serrures. Concevoir

» Travaux pratiques de traitement des informations graphiques

Travaux pratiques de traitement des informations graphiques

Quelles difficultés avez-vous rencontrées ? Comment peuvent-ils être surmontés ?

2. Tracez un dessin noir et blanc de 8 pixels de large codé avec la séquence hexadécimale 2466FF6624 16 .

3. Tracez un dessin en noir et blanc de 5 pixels de large, codé avec la séquence hexadécimale 3A53F88 16 .

4. Un dessin de 10×15 cm est encodé avec une résolution de 300 ppi. Estimez le nombre de pixels de ce dessin. (Réponse : environ 2 mégapixels)

5. Construisez un code hexadécimal pour les couleurs qui ont des codes RVB (100,200,200), (30,50,200), (60,180, 20), (220, 150, 30). (Réponse : #64C8C8, #1E32C8, #3CB414, #DC961E)

6. Comment nommeriez-vous une couleur spécifiée sur une page Web sous forme de code : #CCCCCC, #FFCCCC, #CCCCFF, #000066, #FF66FF, #CCFFFF, #992299, #999900, #99FF99 ? Trouvez les valeurs décimales des composants du code RVB. (Réponse : (204,204,204), (255,204,204), (204,204,255), (0,0,102), (255.255,102), (104,255,255), (153,34,153), (153,153.0), (153,255,153))

7. Qu'est-ce que la profondeur de couleur ? Quel est le lien entre la profondeur de couleur et la taille du fichier ?

8. Quelle est la profondeur de couleur si l'image utilise 65536 couleurs ? 256 couleurs ? 16 couleurs ? (Réponse : 16 bits ; 8 bits ; 4 bits)

9. Pour le jaune, recherchez les composants rouge, vert et bleu en codage 12 bits. (Réponse : R=G=15, B=0)

10. Combien d'espace occupe une palette dans un fichier qui utilise 64 couleurs ? 128 couleurs ?

11. Combien d'octets un code d'image de 40 × 50 pixels prendra-t-il en mode couleurs vraies ? lors de l'encodage avec une palette de 256 couleurs ? lors de l'encodage avec une palette de 16 couleurs ? en noir et blanc (deux couleurs) ? (Réponse : 6000, 2000, 1000, 250)

12. Combien d'octets un code d'image de 80x100 pixels prendra-t-il en 12 bits par codage de pixel ? (Réponse : 12000)

13. Pour stocker un bitmap de 32 × 32 pixels, 512 octets de mémoire ont été alloués. Quel est le nombre maximum de couleurs possible dans la palette d'une image ? (Réponse : 16)

14. Pour stocker une image bitmap d'une taille de 128 x 128 pixels, 4 kilo-octets de mémoire ont été alloués. Quel est le nombre maximum de couleurs possible dans la palette d'une image ? (Réponse : 4)

15. Lors du processus de conversion d'un fichier graphique raster, le nombre de couleurs est passé de 1024 à 32. Combien de fois le volume d'informations du fichier a-t-il diminué ? (Réponse : 2 fois)

16. Lors du processus de conversion d'un fichier graphique raster, le nombre de couleurs est passé de 512 à 8. Combien de fois le volume d'informations du fichier a-t-il diminué ? (Réponse : 3 fois)

17. Résolution de l'écran du moniteur - 1024 x 768 pixels, profondeur de couleur - 16 bits. Quelle est la quantité de mémoire vidéo requise pour ce mode graphique ? (Réponse : 1,5 Mo)

18. Après avoir converti un fichier graphique bitmap 256 couleurs au format noir et blanc (2 couleurs), sa taille a diminué de 70 octets. Quelle était la taille du fichier d'origine ? (Réponse : 80 octets)

19. Quelle quantité de mémoire est nécessaire pour stocker une image graphique bitmap 64 couleurs, 32 x 128 points ? (Réponse : 3 Ko)

20. Quelle est la largeur (en pixels) d'un bitmap non compressé rectangulaire de 64 couleurs qui occupe 1,5 Mo sur le disque si sa hauteur est la moitié de sa largeur ? (Réponse : 2048)

21. Quelle est la largeur (en pixels) d'un bitmap non compressé rectangulaire de 16 couleurs qui occupe 1 Mo sur le disque si sa hauteur est le double de sa largeur ? (Réponse : 1024)

  • Traitement d'image

  • Tout d'abord, réfléchissons logiquement. Si vous redimensionnez une image, vous voulez probablement que le résultat rappelle au moins à distance l'original. Pour ce faire, prenez en compte le plus d'informations possible de l'image d'origine. Avez-vous entendu parler de la méthode du plus proche voisin ? Dans cette méthode, pour chaque point de l'image finale, un point de l'image source est simplement repris tel quel.


    Réduction d'échelle d'une image 4928x3280 à 256x170 par son voisin le plus proche.


    Je recommande de regarder les exemples de l'article dans le navigateur à l'échelle 100% et sans rétine. Autrement dit, au maximum exclure le redimensionnement lors de la visualisation.

    Le résultat n'est pas bon. L'image est nerveuse, granuleuse, il est même difficile de comprendre ce qui y est représenté. Surtout si l'image originale avait beaucoup de petits détails ou était elle-même granuleuse. Pourquoi en est-il ainsi ? Parce que l'image finale a pris en compte très peu d'informations de l'original. Si vous marquez conditionnellement sur l'image source les points qui tombent dans l'image finale, vous obtenez la grille suivante :




    Points qui s'intégreront dans l'image finale 20x13.

    Vous pouvez maintenant évaluer visuellement le peu d'informations sur l'image source qui entrent dans l'image finale. D'accord, il est peu probable que les pixels soient situés exactement le long de cette grille, ce qui donnera une bonne idée de l'image dans l'image d'origine.


    Un résultat complètement différent est donné, par exemple, en redimensionnant à l'aide de plis. Dans celui-ci, chaque pixel de l'image source contribue à l'image finale, et plus d'une fois. Par conséquent, l'image est lisse et claire lors du choix d'un bon filtre.



    Downscaling de 4928x3280 à 256x170 convolutions avec filtre bicubique.


    Néanmoins, la méthode du "plus proche voisin" a un avantage indiscutable : elle fonctionne en temps constant par rapport à la taille de l'image d'origine. Cela signifie que quelle que soit la taille de l'image d'origine, le temps nécessaire pour la réduire à une certaine taille sera le même. Je vais donner des exemples en Python avec la bibliothèque Pillow, mais vous pouvez obtenir presque le même résultat avec n'importe quel langage et bibliothèques.


    >>> à partir d'une image d'importation PIL >>> im = Image.open("pineapple.jpeg"); im.load(); im.size (2560, 1600) >>> %time im.resize((256, 170), Image.NEAREST) ​​​​Durée du mur : 0,35 ms >>> im = Image.open("space.jpeg"); im.load(); im.size(4928, 3280) >>> %time im.resize((256, 170), Image.NEAREST) ​​​​Durée du mur : 0,44 ms
    En réalité, le temps n'est pas tout à fait constant, puisque divers facteurs tels que les caches du processeur et la localité des données interviennent, mais même pour une image source 4 fois plus grande, nous n'avons obtenu qu'un ralentissement de 23 %.

    La vitesse des convolutions, au contraire, décroît linéairement avec l'augmentation de l'image d'origine.


    >>> à partir d'une image d'importation PIL >>> im = Image.open("pineapple.jpeg"); im.load(); im.size (2560, 1600) >>> %time im.resize((256, 170), Image.BICUBIC) Temps de mur : 33,2 ms >>> im = Image.open("space.jpeg"); im.load(); im.size(4928, 3280) >>> %time im.resize((256, 170), Image.BICUBIC) Temps de mur : 130 ms

    Pour une image originale 4 fois plus grande, le temps a également augmenté de 4 fois.

    Noyau fixe

    Certaines applications et bibliothèques pour travailler avec des graphiques utilisent une telle astuce : elles semblent utiliser les mêmes filtres pour le redimensionnement que lors du redimensionnement avec des convolutions (par exemple, il existe des filtres bilinéaire, bicubique et Lanczos), mais lorsque l'image est réduite, ils le font n'augmente pas de manière adaptative le noyau du filtre. En conséquence, pour construire n'importe quel point de l'image finale, seuls 4 pixels de l'image d'origine sont utilisés avec un filtre bilinéaire, avec un filtre bicubique - 16, avec un filtre Lanczos à 3 frontaux - 36. C'est-à-dire le temps d'exécution s'avère également être constant par rapport à la taille d'origine.


    Mais cette approche fonctionne pour réduire à environ 2 fois, puis le résultat n'est pas très différent du "plus proche voisin".



    De 4928x3280 à 256x170 avec filtre bilinéaire à noyau fixe.


    Et quand je dis "pas très différent de 'Nearest Neighbor'", je ne veux pas seulement dire que c'est aussi irrégulier et granuleux, je veux dire que c'est vraiment presque le même que le résultat de 'Nearest Neighbor'. Ouvrez les deux images dans les onglets de navigateur adjacents et basculez entre elles, les images sont presque identiques. Il peut même sembler qu'il y a une erreur quelque part, que cela ne devrait pas être, car avec un noyau fixe, 4 pixels sont interpolés, et le premier n'est pas bêtement pris, et le résultat devrait être plus proche de l'original. Mais il n'y a pas d'erreur ici, et voici pourquoi :



    Les points qui seront interpolés lorsqu'ils seront réduits à 20x13.


    Ce sont les points de l'image source, sur lesquels l'image finale est construite. Il y en a 4 fois plus, mais ils sont tous situés aux mêmes endroits que dans la méthode du plus proche voisin. Autrement dit, nous ne recevrons probablement pas de nouvelles informations sur l'image. Vous pouvez essayer d'augmenter encore le nombre de points dans l'image d'origine impliqués dans le processus en appliquant un filtre bicubique, mais le résultat sera à nouveau presque le même et même un peu plus en lambeaux, car dans le filtre bicubique, les pixels extrêmes sont pris avec des coefficients négatifs.



    De 4928x3280 à 256x170 avec filtre bicubique à noyau fixe.


    Comme vous pouvez le deviner, la complexité et le temps d'exécution lors de l'utilisation de filtres avec une large couverture augmentent considérablement, tandis que l'image finale reste presque inchangée. Les trois exemples suivants donnent à peu près la même image, mais leur temps de fonctionnement diffère jusqu'à 20 fois.


    >>> im = Image.open("espace.jpeg"); im.load(); im.size (4928, 3280) # Voisin le plus proche >>> %time im.resize((256, 170), Image.NEAREST) ​​​​Durée du mur : 0,441 ms # Noyau fixe bilinéaire >>> %time im.transform( (256 , 170), Image.AFFINE, (im.width / 256, 0, 0, 0, im.height / 170, 0), Image.BILINEAR) Temps de mur : 3,62 ms # Noyau fixe bicubique >>> %time im.transform((256, 170), Image.AFFINE, (im.width / 256, 0, 0, 0, im.height / 170, 0), Image.BICUBIC) Temps de mur : 9,21 ms

    Ici, j'ai simulé un redimensionnement fixe du noyau à l'aide de transformations affines. Mais certaines applications et bibliothèques le font en réalité : elles utilisent des filtres plus coûteux pour réduire, dont le résultat est presque égal à la méthode du plus proche voisin. C'est ainsi que le fait OpenCV, c'est ainsi que c'est fait, c'est ainsi que les cartes graphiques le font lors de la texturation sans niveaux mip. Car bien que le temps soit plus long, il est constant par rapport à la résolution de l'image d'origine. Eh bien, qu'en est-il de la qualité? Pour la qualité, il y a des circonvolutions.

    Comment réparer

    Vous vous demandez sans doute pourquoi je vous raconte tout ça, c'est quand même clair : si vous avez besoin de rapidité, il faut prendre un "voisin" ou un noyau fixe, si la qualité c'est les circonvolutions. Mais le fait est qu'il s'avère que la réduction avec un noyau fixe peut être corrigée pour que son résultat soit radicalement meilleur. Tant mieux que peut-être, pour vos besoins, cela suffira et aucune circonvolution ne sera nécessaire. De plus, la complexité ne sera pas seulement une constante par rapport à la taille de l'image originale, elle sera la même constante, ce qui est le même que lors de l'utilisation d'un noyau fixe.



    Le résultat du redimensionnement de 4928x3280 à 256x170 en temps constant.


    Comme vous pouvez le voir, le résultat de cet algorithme n'est rien comparé au désordre multicolore qui résulte du "plus proche voisin" ou du noyau fixe. Pour les exemples de cet article, j'ai délibérément pris une image assez grande, à grille fine avec beaucoup de détails (regardez le reflet dans le casque de l'astronaute) et je l'ai beaucoup réduite. J'ai fait de mon mieux pour obtenir autant d'artefacts que possible sur le résultat, mais l'algorithme s'en sort toujours ! Lorsque j'ai entendu parler de cette méthode pour la première fois par , je pensais que la méthode n'apportait probablement qu'une légère amélioration par rapport à un noyau fixe, car le nombre de pixels impliqués était le même. Mais le résultat a largement dépassé mes attentes.


    Le secret est de ne pas prendre pour traiter des points qui sont regroupés en 4 morceaux, comme avec un noyau fixe, mais d'utiliser une grille uniforme de résolution 2 fois supérieure à ce qu'elle devrait être au final. Et à partir de là, interpolez déjà l'image finale.



    Points à utiliser lorsqu'ils sont réduits à 20x13.


    Comme vous pouvez le voir, pas mal de points de l'image originale sont encore pris. Mais parce qu'ils sont uniformément répartis, ils sont plus représentatifs. Et parce qu'il y en a exactement 4 fois plus, ils contribuent tous de la même manière à l'image finale.


    Et maintenant la partie amusante : vous n'avez pas besoin de coder quoi que ce soit pour utiliser cette méthode ! Vous avez déjà tout ce dont vous avez besoin. Dans la première étape, vous pouvez créer une grille uniforme de pixels deux fois plus haute en résolution en utilisant la méthode du "plus proche voisin", et dans la deuxième étape, la compresser d'un facteur 2 avec soit un filtre fixe, même des convolutions, ou même un filtre de boîte (selon ce qu'il y a dans votre bibliothèque). La seule chose pour les convolutions, je vous conseillerais de prendre un filtre de Hamming ou bicubique, mais pas bilinéaire.


    >>> im = Image.open("espace.jpeg"); im.load(); im.size (4928, 3280) # Exemple de noyau non adaptatif >>> %time im.resize((512, 340), Image.NEAREST)\ .transform((256, 170), Image.AFFINE, (2, ( 256, 170), Image.HAMMING) Temps de paroi : 2,42 ms # Exemple avec convolutions et filtre bicubique >>> %time im.resize((512, 340), Image.NEAREST)\ .resize((256, 170) , Image.BICUBIC) Temps de mur : 3,53 ms # Exemple de filtre de boîte # Le résultat sera légèrement différent car OpenCV # a un bogue avec la précision INTER_NEAREST # voir https://github.com/opencv/opencv/issues/ 9096 >>> import cv2 >>> im = cv2.imread("space.jpeg") >>> %time cv2.resize(cv2.resize(im, (512, 340), interpolation=cv2.INTER_NEAREST), ( 256, 170), interpolation=cv2.INTER_AREA) Temps de mur : 0,81 ms

    Développement ultérieur de l'idée

    Cette amélioration est impressionnante, mais vous ne pouvez pas vous arrêter là. Qui a dit que pour la construction il fallait utiliser une image exactement 2 fois plus grande ? Pourquoi ne pas en prendre 3x ou 4x pour une meilleure qualité. Certes, il ne sera pas possible d'utiliser le redimensionnement avec un noyau fixe pour la deuxième étape, car les mêmes problèmes dont nous essayons de nous débarrasser apparaîtront. Et voici les bundles - s'il vous plaît. Dans le même temps, le temps restera constant, seule la constante sera plus grande.



    Redimensionnez de 4928x3280 à 256x170 en utilisant des images intermédiaires 2x et 4x.


    Peut-être qu'à cette échelle, les différences ne sont pas très visibles, mais elles sont assez fortes. Pour les remarquer, regardez le gif avec zoom :



    Eh bien, le temps:


    >>> im = Image.open("espace.jpeg"); im.load(); im.size (4928, 3280) # Exemple avec une image intermédiaire 2x >>> %time im.resize((512, 340), Image.NEAREST)\ .resize((256, 170), Image.BICUBIC) Temps de mur : 3,53 ms # Exemple d'image intermédiaire 3x >>> %time im.resize((768, 510), Image.NEAREST)\ .resize((256, 170), Image.BICUBIC) Temps de mur : 6,27 ms # Exemple d'image intermédiaire 4x >>> %time im.resize((1024, 680), Image.NEAREST)\ .resize((256, 170), Image.BICUBIC) Temps de mur : 9,23 ms

    Comme vous pouvez le voir, la variante avec image intermédiaire 2x fonctionne dans le temps approximativement égal au filtre bilinéaire avec un noyau fixe, et la variante avec image intermédiaire 4x dans le temps du filtre bicubique. Eh bien, d'une manière générale, vous ne pouvez pas utiliser un nombre entier de points.

    Comment faire le bon choix

    La question se pose : si cette méthode donne de si meilleurs résultats et fonctionne à la vitesse d'un noyau fixe, pourquoi utiliser un noyau fixe pour la réduction ? Cette méthode, bien sûr, a un domaine d'application - il vaut mieux ne pas l'utiliser lors de la réduction moins de 2 fois. Et cela coïncide avec la limite d'applicabilité d'un noyau fixe, qu'il vaut mieux ne pas utiliser lors de la réduction plus de 2 fois. Il s'avère qu'en combinant les méthodes, il est possible d'obtenir un redimensionnement de qualité acceptable en un temps fixe à n'importe quelle échelle.

    Ajout important

    Les commentaires indiquent correctement que cette méthode est correctement appelée suréchantillonnage. Le suréchantillonnage est souvent utilisé dans les jeux pour éliminer le crénelage. En substance, la scène du jeu est une image de résolution infinie, car nous pourrions la dessiner dans n'importe quelle résolution. Pour le suréchantillonnage, la scène est dessinée à une résolution plus élevée que nécessaire et plusieurs pixels voisins sont moyennés en un seul. C'est-à-dire que l'analogie est complète. Mais cela n'enlève rien au fait qu'une telle méthode est très rarement utilisée dans les logiciels, malgré ses mérites.

    Exemples

    Et enfin, quelques exemples avec d'autres images. De gauche à droite:
    1) noyau fixe, filtre bilinéaire (ce que beaucoup utilisent maintenant)
    2) circonvolutions bicubiques comme référence
    3) suréchantillonnage avec grossissement 2x
    4) suréchantillonnage avec grossissement 4x


    La principale chose à retenir lors de la visualisation est que la troisième image est générée exactement en même temps que la première, et la quatrième, bien que ≈3 fois plus longue, est également en temps constant et souvent jusqu'à 20 fois plus rapide que la seconde une.

    Réduit de 15,625 fois.


    Image 2448×3264 réduite 9,5625 fois.


    Image 2000×2000 réduite de 7,8125 fois.

    Je suis programmeur de formation, mais au travail, j'ai dû m'occuper du traitement d'images. Et puis un monde étonnant et inconnu d'espaces colorimétriques s'est ouvert à moi. Je ne pense pas que les designers et les photographes apprendront quelque chose de nouveau par eux-mêmes, mais peut-être que quelqu'un trouvera cette connaissance au moins utile, et au mieux intéressante.

    La tâche principale des modèles de couleurs est de permettre de spécifier les couleurs de manière unifiée. En fait, les modèles de couleurs définissent certains systèmes de coordonnées qui vous permettent de déterminer la couleur de manière unique.

    Les plus populaires aujourd'hui sont les modèles de couleurs suivants : RVB (utilisé principalement dans les moniteurs et les caméras), CMJ (K) (utilisé dans l'impression), HSI (largement utilisé dans la vision industrielle et la conception). Il existe de nombreux autres modèles. Par exemple, CIE XYZ (modèles standard), YCbCr, etc. Voici un bref aperçu de ces modèles de couleurs.

    Cube de couleur RVB

    De la loi de Grassmann, l'idée d'un modèle additif (c'est-à-dire basé sur le mélange des couleurs d'objets émettant directement) de reproduction des couleurs surgit. Pour la première fois, un tel modèle a été proposé par James Maxwell en 1861, mais il a reçu la plus grande diffusion bien plus tard.

    Dans le modèle RVB (de l'anglais rouge - rouge, vert - vert, bleu - cyan) toutes les couleurs sont obtenues en mélangeant trois couleurs de base (rouge, vert et bleu) dans des proportions variées. La proportion de chaque couleur de base dans la finale peut être perçue comme une coordonnée dans l'espace tridimensionnel correspondant, de sorte que ce modèle est souvent appelé un cube de couleur. Sur la Fig. 1 montre le modèle du cube de couleur.

    Le plus souvent, le modèle est construit de manière à ce que le cube soit unique. Les points correspondant aux couleurs de base sont situés aux sommets du cube situés sur les axes : rouge - (1 ; 0 ; 0), vert - (0 ; 1 ; 0), bleu - (0 ; 0 ; 1). Dans ce cas, les couleurs secondaires (obtenues en mélangeant deux couleurs de base) sont situées dans d'autres sommets du cube : bleu - (0;1;1), magenta - (1;0;1) et jaune - (1;1 ;0). Les couleurs noir et blanc sont situées à l'origine (0;0;0) et au point le plus éloigné de l'origine (1;1;1). Riz. affiche uniquement les sommets du cube.

    Les images couleur du modèle RVB sont construites à partir de trois canaux d'image distincts. Dans le tableau. la décomposition de l'image originale en canaux de couleur est affichée.

    Dans le modèle RVB, un certain nombre de bits sont alloués pour chaque composant de couleur, par exemple, si 1 octet est alloué pour encoder chaque composant, alors en utilisant ce modèle, 2 ^ (3 * 8) ≈ 16 millions de couleurs peuvent être encodés. En pratique, un tel codage est redondant, car la plupart des gens ne sont pas capables de distinguer autant de couleurs. Souvent limité à la soi-disant. mode "High Color" dans lequel 5 bits sont alloués pour encoder chaque composante. Dans certaines applications, un mode 16 bits est utilisé dans lequel 5 bits sont alloués pour coder les composantes R et B, et 6 bits pour coder la composante G. Ce mode, d'une part, prend en compte la plus grande sensibilité d'une personne à la couleur verte, et d'autre part, il permet une utilisation plus efficace des fonctionnalités de l'architecture informatique. Le nombre de bits alloués pour coder un pixel est appelé la profondeur de couleur. Dans le tableau. des exemples de codage de la même image avec différentes profondeurs de couleur sont donnés.

    Modèles CMJ et CMJN soustractifs

    Le modèle CMJ soustractif (de l'anglais cyan - cyan, magenta - magenta, jaune - jaune) est utilisé pour obtenir des copies papier (impression) d'images, et est en quelque sorte l'antipode du cube de couleurs RVB. Si dans le modèle RVB les couleurs de base sont les couleurs des sources lumineuses, alors le modèle CMJ est le modèle d'absorption des couleurs.

    Par exemple, le papier enduit de colorant jaune ne réfléchit pas la lumière bleue ; on peut dire que le colorant jaune soustrait le bleu de la lumière blanche réfléchie. De même, le colorant cyan soustrait le rouge de la lumière réfléchie et le colorant magenta soustrait le vert. C'est pourquoi ce modèle est appelé soustractif. L'algorithme de conversion du modèle RVB vers le modèle CMJ est très simple :

    Cela suppose que les couleurs RVB sont dans l'intervalle . Il est facile de voir que pour obtenir du noir dans le modèle CMJ, il faut mélanger le cyan, le magenta et le jaune dans des proportions égales. Cette méthode présente deux inconvénients sérieux: premièrement, la couleur noire obtenue à la suite du mélange semblera plus claire que le «vrai» noir, et deuxièmement, cela entraîne des coûts de teinture importants. Par conséquent, en pratique, le modèle CMJ est étendu au modèle CMJN, en ajoutant du noir aux trois couleurs.

    Teinte de l'espace colorimétrique, saturation, intensité (HSI)

    Les modèles de couleurs RVB et CMJ(K) discutés précédemment sont très simples en termes de mise en œuvre matérielle, mais ils présentent un inconvénient important. Il est très difficile pour une personne d'opérer avec les couleurs données dans ces modèles, car une personne, décrivant les couleurs, n'utilise pas le contenu des composants de base de la couleur décrite, mais des catégories quelque peu différentes.

    Le plus souvent, les gens fonctionnent avec les concepts suivants : teinte, saturation et luminosité. En même temps, lorsqu'on parle de tonalité de couleur, ils signifient généralement exactement la couleur. La saturation indique à quel point la couleur décrite est diluée avec du blanc (le rose, par exemple, est un mélange de rouge et de blanc). Le concept de légèreté est le plus difficile à décrire, et avec quelques hypothèses, la légèreté peut être comprise comme l'intensité de la lumière.

    Si l'on considère la projection du cube RVB dans le sens de la diagonale blanc-noir, on obtient un hexagone :

    Toutes les couleurs grises (situées sur la diagonale du cube) sont projetées vers le point central. Afin de pouvoir encoder toutes les couleurs disponibles dans le modèle RVB à l'aide de ce modèle, vous devez ajouter un axe vertical de luminosité (ou d'intensité) (I). Le résultat est un cône hexagonal :

    Dans ce cas, le ton (H) est fixé par l'angle par rapport à l'axe rouge, la saturation (S) caractérise la pureté de la couleur (1 signifie une couleur complètement pure, et 0 correspond à une nuance de gris). Il est important de comprendre que la teinte et la saturation ne sont pas définies à une intensité nulle.

    L'algorithme de conversion de RVB en HSI peut être effectué à l'aide des formules suivantes :

    Le modèle de couleur HSI est très populaire parmi les designers et les artistes car ce système permet un contrôle direct de la teinte, de la saturation et de la luminosité. Ces mêmes propriétés rendent ce modèle très populaire dans les systèmes de vision industrielle. Dans le tableau. montre comment l'image change avec l'augmentation et la diminution de l'intensité, de la teinte (pivotée de ±50°) et de la saturation.

    Modèle CIE XYZ

    Aux fins d'unification, un modèle de couleur standard international a été développé. À la suite d'une série d'expériences, la Commission internationale de l'éclairage (CIE) a déterminé les courbes d'addition des couleurs primaires (rouge, vert et bleu). Dans ce système, chaque couleur visible correspond à un certain rapport de couleurs primaires. Dans le même temps, pour que le modèle développé reflète toutes les couleurs visibles par une personne, un nombre négatif de couleurs de base a dû être introduit. Pour s'éloigner des valeurs CIE négatives, a introduit le soi-disant. couleurs primaires irréelles ou imaginaires : X (rouge imaginaire), Y (vert imaginaire), Z (bleu imaginaire).

    Lors de la description d'une couleur, les valeurs X,Y,Z sont appelées excitations de base standard et les coordonnées obtenues à partir de celles-ci sont appelées coordonnées de couleur standard. Les courbes d'addition standard X(λ),Y(λ),Z(λ) (voir Fig.) décrivent la sensibilité de l'observateur moyen aux excitations standard :

    En plus des coordonnées de couleur standard, le concept de coordonnées de couleur relatives est souvent utilisé, qui peut être calculé à l'aide des formules suivantes :

    Il est facile de voir que x+y+z=1, ce qui signifie que n'importe quelle paire de valeurs est suffisante pour définir de manière unique des coordonnées relatives, et l'espace colorimétrique correspondant peut être représenté sous la forme d'un graphique à deux dimensions :

    L'ensemble des couleurs ainsi défini est appelé le triangle CIE.
    Il est facile de voir que le triangle CIE ne décrit que la teinte, mais ne décrit en aucun cas la luminosité. Pour décrire la luminosité, un axe supplémentaire est introduit, passant par un point de coordonnées (1/3; 1/3) (le soi-disant point blanc). Le résultat est un corps de couleur CIE (voir Fig.):

    Ce solide contient toutes les couleurs visibles par l'observateur moyen. Le principal inconvénient de ce système est qu'en l'utilisant, on ne peut énoncer que la coïncidence ou la différence de deux couleurs, mais la distance entre deux points de cet espace colorimétrique ne correspond pas à la perception visuelle de la différence de couleur.

    Modèle CIELAB

    L'objectif principal du développement de CIELAB était d'éliminer la non-linéarité du système CIE XYZ du point de vue de la perception humaine. L'abréviation LAB fait généralement référence à l'espace colorimétrique CIE L*a*b*, qui est actuellement la norme internationale.

    Dans le système CIE L*a*b, la coordonnée L signifie la luminosité (dans la plage de 0 à 100) et les coordonnées a,b signifient la position entre le vert-magenta et le bleu-jaune. Les formules pour convertir les coordonnées de CIE XYZ en CIE L*a*b* sont données ci-dessous :


    où (Xn,Yn,Zn) sont les coordonnées du point blanc dans l'espace CIE XYZ, et


    Sur la Fig. des tranches du corps de couleur CIE L*a*b* sont présentées pour deux valeurs de luminosité :

    Par rapport au système CIE XYZ Distance euclidienne (√((L1-L2)^2+(a1^*-a2^*)^2+(b1^*-b2^*)^2)) dans le système CIE L*a * b* correspond beaucoup mieux à la différence de couleur perçue par l'homme, mais la formule standard de différence de couleur est la CEEDE2000 extrêmement complexe.

    Systèmes de couleurs de différence de couleur de télévision

    Dans les systèmes de couleurs YIQ et YUV, les informations de couleur sont représentées sous la forme d'un signal de luminance (Y) et de deux signaux de différence de couleur (IQ et UV, respectivement).

    La popularité de ces systèmes couleur est principalement due à l'avènement de la télévision couleur. Car Étant donné que le composant Y contient essentiellement l'image d'origine en niveaux de gris, le signal dans le système YIQ pourrait être reçu et correctement affiché à la fois sur les anciens téléviseurs noir et blanc et sur les nouveaux téléviseurs couleur.

    Le deuxième avantage, peut-être le plus important, de ces espaces est la séparation des informations sur la couleur et la luminosité de l'image. Le fait est que l'œil humain est très sensible aux changements de luminosité et beaucoup moins sensible aux changements de couleur. Cela permet la transmission et le stockage des informations de chrominance avec une profondeur réduite. C'est sur cette caractéristique de l'œil humain que sont aujourd'hui construits les algorithmes de compression d'image les plus répandus (dont jpeg). Pour convertir de l'espace RVB en YIQ, vous pouvez utiliser les formules suivantes :

    Objectifs de la leçon:

    Éducatif:

    • développement des compétences de travail avec un éditeur graphique;
    • répétition et consolidation des compétences de la capacité à travailler avec des outils - «copier», «coller»;
    • apprendre à faire un dessin à partir de plusieurs fragments identiques d'un dessin ;
    • présenter les étudiants à la nouvelle équipe refléter/Tour.

    Développement:

    • développer l'intérêt cognitif, l'activité créative des élèves;
    • développer les compétences informatiques, développer la communication amicale et professionnelle des étudiants en travail d'équipe.

    Éducatif:

    • cultiver l'intérêt pour le sujet, la précision, l'attention, la discipline.

    Objectifs de la leçon:

    • poursuivre le développement des compétences pour utiliser un éditeur graphique ;
    • former des compétences pour travailler sur un PC, avec le produit logiciel Paint;
    • former la capacité d'exprimer correctement et avec compétence leurs pensées.

    Type de leçon : apprentissage de nouvelles matières.

    Matériel : PC, logiciel - éditeur graphique Paint, projecteur, écran, cartes questions, cartes avec un algorithme pour la réalisation de travaux pratiques, livrets.

    Formes : collectif, groupe.

    Types de travail : conversation, travail avec polycopiés, travail sur PC.

    Étapes de la leçon :

    • matériel d'organisation.
    • Fixer l'objectif de la leçon.
    • Mise à jour des connaissances :
      • relevé frontal
      • travailler avec des documents
    • Apprentissage de nouveau matériel :
      • éléments répétés (commande Edition - Copier)
      • Géants et Nains (Stretch and Squeeze)
      • Inclinez, retournez et faites pivoter
      • Minute d'éducation physique
    • Consolidation primaire de l'étudié (travaux pratiques)
      • travailler sur un PC, en utilisant des cartes avec un algorithme pour effectuer le travail
    • Réglage des devoirs.
    • Résumé de la leçon.
      • qu'avez-vous appris de nouveau aujourd'hui ?
      • notes pour la leçon.

    Pendant les cours :

    I. Moment organisationnel.

    II. Définir l'objectif de la leçon

    Salut les gars, asseyez-vous. Nous commençons donc la leçon. Dites-moi, qu'avons-nous fait dans la dernière leçon ?

    Dans la dernière leçon, nous nous sommes familiarisés avec l'éditeur graphique Paint. Dessinez des dessins à l'aide des objets situés sur la barre d'outils.

    - Oui c'est vrai. Mais il s'avère que vous pouvez effectuer toutes les actions sur le dessin. Réfléchissez et dites-moi quelles actions peuvent être effectuées sur l'image?

    Une image peut être copiée, collée, redimensionnée, c'est-à-dire augmenter ou diminuer.

    - Correctement. Mais vous n'avez nommé qu'une partie des actions pouvant être effectuées sur l'image. Vous pouvez également faire pivoter, incliner, refléter l'image. Quel est un mot pour ces activités ?

    Toutes ces actions peuvent être appelées le mot transformation.

    - Oui c'est vrai. Et maintenant, à partir de tout ce qui a été dit, essayez de formuler vous-même le sujet de notre leçon.

    Le sujet de notre leçon est "Transformation d'image".

    - Oui, le sujet de notre leçon est "Paint Graphic Editor : Conversion d'une image". Aujourd'hui, dans la leçon, nous allons apprendre à convertir des dessins, c'est-à-dire redimensionner l'image, copier, faire pivoter, incliner. Ensuite, vous ferez un petit travail pratique. Mais d'abord, nous rappellerons le matériel étudié dans la dernière leçon.

    III. Mise à jour des connaissances.

    1. Relevé frontal.

    • Maintenant, je vais vous montrer des cartes avec l'outil représenté, et vous allez le nommer et dire à quoi il sert.
    • Quelle est la différence entre une sélection arbitraire d'un fragment et une sélection rectangulaire ?
    • Quelle est la différence entre une sélection avec fond et une sélection sans fond ?
    • Comment dessiner un carré et un cercle dans un éditeur graphique ?

    2. Travaillez avec des documents.

    Travaillez en binôme sur des cartes.

    1. Complétez la phrase :

    L'éditeur graphique est...

    A) un appareil pour créer et éditer des dessins ;

    B) un programme de création et d'édition de dessins ;

    C) un programme de création et d'édition de documents texte ;

    D) un dispositif pour imprimer des dessins sur papier.

    2. Nommez les boutons de la barre d'outils :

    3. Déterminez ce qui résultera des actions suivantes :

    • Définissez la couleur principale sur jaune ;
    • Sélectionnez l'outil Ovale et réglez-le sur le 3ème mode de remplissage ;
    • Maintenez la touche Maj enfoncée et dessinez un cercle ;
    • Sélectionnez l'outil Ligne et réglez-le pour dessiner les lignes les plus épaisses ;
    • Maintenez la touche Maj enfoncée et tracez des lignes sortant du centre du cercle jaune.

    IV. Apprendre du nouveau matériel.

    1. Eléments répétés (commande Edition - Copier)

    Les gars, s'il vous plaît regardez l'écran. Que vois-tu?<Pièce jointe 1 >

    Rameaux de plantes diverses : sorbier, raisin, etc..

    - Oui, c'est vrai. Des branches de plantes sont représentées à l'écran. Réfléchissez maintenant et dites-moi ce que toutes ces branches ont en commun ?

    Chaque branche se compose de quelques détails répétitifs : feuilles, baies.

    - Droit. Où d'autre pouvez-vous trouver des éléments répétitifs ?

    Diverses constructions géométriques, structures.

    – Ainsi, nous pouvons conclure que les éléments répétitifs peuvent être vus non seulement dans les constructions géométriques, mais aussi dans le monde qui nous entoure. Regarde autour de toi. Feuilles sur les arbres, baies, fruits - tout cela sont des répétitions créées par la nature. Les bâtiments résidentiels, les voitures créées par l'homme, avec toute leur diversité, ont également des éléments répétitifs. (Diaporama avec images de baies, fruits, arbres, etc.). Et dans la créativité, peut-on rencontrer des objets répétitifs ?

    Dans les dessins, les images.

    - Droit. Un fragment répétitif peut devenir la base d'une composition artistique. Regardons une branche de rowan. (Diaporama illustrant des brindilles de sorbier). Pour le dessiner, vous devez faire un blanc d'une seule baie, puis faire un tas de copies. Les feuilles sont également obtenues à partir d'une petite feuille. Mais comment disposer les feuilles dans différentes directions ? Ils devraient être les mêmes, mais il est impossible de dessiner exactement les mêmes objets. Et dans ce cas, ils doivent non seulement être identiques, mais ils doivent également être placés symétriquement par rapport à la branche. Il s'avère que le fragment sélectionné peut être tourné ou mis en miroir. (Refléter). Ces opportunités sont assurées par une équipe dédiée Retourner - Tourner du menu Image. La figure montre les feuilles obtenues à partir d'une seule feuille à l'aide des commandes de retournement et de rotation. Lorsque cette commande est sélectionnée, une boîte de dialogue apparaît. (Montrez une diapositive avec une image de cette boîte de dialogue). Voyez comment ces commandes sont exécutées dans la figure. (La diapositive suivante est "des exemples d'exécution des commandes de retournement et de rotation").

    Écrivons dans nos cahiers le sujet de la leçon, que vous avez vous-même formulé: "Éditeur graphique de peinture: conversion de dessin".

    Rappelez-vous où dans la vie de tous les jours vous pouvez voir le reflet de gauche à droite, de haut en bas ? Trouvez des exemples d'utilisation de la commande Retourner - Tourner dans les dessins. Et notez un exemple dans votre cahier.

    Les gars écrivent dans un cahier, puis vérifient.

    Dans l'éditeur graphique Paint, vous pouvez refléter un fragment de l'image autour de l'axe de symétrie vertical ou horizontal du rectangle de sélection. Pour ce faire, sélectionnez l'image et exécutez la commande Image - Retourner et faire pivoter. Cette fenêtre apparaîtra :<Image 1 >

    Dans cette fenêtre, nous sélectionnons l'action à effectuer sur l'image : retourner de gauche à droite, retourner de haut en bas ou faire pivoter d'un angle. Regardez l'écran et dites-moi quels changements sont arrivés aux chatons ?<Figure 2 >, <figure 3 >

    Dans le premier, les dessins au-dessus des bonhommes de neige ont été transformés : réflexion de gauche à droite. Sur la seconde - une réflexion de haut en bas.

    - Oui c'est vrai. Une autre transformation est la rotation. La rotation des fragments par rapport au centre de symétrie du rectangle de sélection peut être effectuée dans la fenêtre Miroir et rotation, qui est appelée depuis le menu Image. Choisissez la commande : Rotation par coin. Ensuite, parmi les angles proposés, sélectionnez l'angle dont nous avons besoin.<Figure 4 >

    2. Géants et nains (commandes d'étirement et de rétrécissement)

    - Nous n'avons rencontré qu'une seule transformation de l'image : la réflexion et la rotation. Mais il y en a d'autres. Qu'est-ce que tu penses?

    Le dessin peut être incliné, agrandi ou réduit, c'est-à-dire redimensionner l'image.

    – Oui, ce sont ces transformations que l'on peut effectuer sur le dessin. Je vais maintenant vous lire un court passage, et vous me direz de quel type de transformation vous parlez. Alors, nous écoutons attentivement : "Des mouches de la taille d'un éléphant ont survolé les toits. Les chevaux étaient gardés dans des maisons au lieu de chiens. Des herbes géantes poussaient dans la forêt, et des bouleaux et des trembles devenaient verts sur les rebords des fenêtres. Les enfants de ce pays étaient nés grands, comme des tailles géantes, jusqu'à ce qu'ils disparaissent complètement... Un garçon fantasmait comme ça.

    Ici, nous parlons de changer la taille de l'image. À propos de l'augmentation et de la diminution.

    – Bien sûr, dans ce passage, certains de nos objets étaient très gros, tandis que d'autres étaient petits. Il s'avère que dans l'éditeur graphique, vous pouvez facilement étirer ou compresser le fragment sélectionné, c'est-à-dire changer la taille de l'image : augmenter ou diminuer.<Figure 5 >

    Dans ce cas, nous avons réduit le bonhomme de neige de 2 fois. Pour ce faire, sélectionnez d'abord le bonhomme de neige, puis exécutez la commande Figure - Étirement et inclinaison. La fenêtre suivante est apparue :<Figure 6 >

    Pour réduire le chiffre de 2 fois, spécifiez les valeurs de 50 horizontalement et verticalement.

    Vous pouvez modifier la taille du fragment sélectionné non seulement à partir du menu Image. Vous pouvez le faire en faisant glisser les marqueurs de taille situés sur le bord de la zone sélectionnée avec la souris. Parfois, c'est plus pratique, mais le redimensionnement se fait "à l'œil". Lorsque la précision est nécessaire, les menus sont indispensables.

    3. Inclinez, retournez, faites pivoter.

    dans la fenêtre Étirer et incliner, qui est appelé depuis le menu Image, vous pouvez définir l'inclinaison du fragment sélectionné en degrés :<Figure 7 >

    Lors de l'exécution de cette commande, notre chaton se pliera un peu :<Figure 8 >

    4. Education physique.

    Pour que nous gagnions la santé -
    Il faut faire du sport.
    Devenir fort
    Charge - un, deux, trois.
    Mains sur la ceinture, jambes plus larges...
    Virages avant - Un, deux, trois, quatre.
    Pieds joints, mains baissées
    Sautez sur place et asseyez-vous.

    V. Consolidation primaire de l'étudié (travaux pratiques).

    Vous allez maintenant faire un petit travail pratique. Sur les bureaux, vous avez des cartes avec un algorithme pour effectuer des travaux pratiques. Mais avant de vous asseoir devant les ordinateurs, passons en revue avec vous les règles de sécurité.

    Les gars énumèrent les règles de sécurité du cours d'informatique dans une chaîne.

    - Vous souvenez-vous des règles de sécurité ? Et maintenant, nous nous asseyons tranquillement devant les ordinateurs et commençons à faire le travail. Quiconque a des questions, levez la main et je viendrai.

    Travaux pratiques

    1. En utilisant les capacités d'un éditeur graphique, dessinez un robot.
    2. Sélectionnez un robot. Après avoir exécuté la commande Edition - Copier, copiez-la. Ensuite, en exécutant la commande Edition - Coller, collez le robot 6 fois et placez les robots insérés sur le champ de travail.
    3. Sélectionnez le premier robot. Agrandissez le robot de 2 fois en exécutant les commandes Dessin - Étirer - 200% - 200%.
    4. Sélectionnez le deuxième robot. Réduisez le robot de 2 fois en exécutant les commandes Dessin - Étirer - 50% - 50%.
    5. Sélectionnez le troisième robot. Inclinez le robot horizontalement de 45 0 en exécutant les commandes Picture - Stretch et Tilt.
    6. Sélectionnez le quatrième robot. Retournez le robot de gauche à droite en exécutant les commandes Dessin - Retourner et Rotation.
    7. Sélectionnez le cinquième robot. Retournez le robot de haut en bas en exécutant les commandes Image - Retourner et Rotation.
    8. Sélectionnez le sixième robot. Faites pivoter le robot de 270 0 en exécutant les commandes Picture - Flip et Rotate.
    9. Laissez le dernier robot inchangé.
    10. Montrez votre travail au professeur.

    VI. Réglage des devoirs.

    1. Dessinez une image arbitraire dans l'éditeur de peinture. Et y opérer toutes les transformations que nous avons étudiées aujourd'hui.

    2*. Dessinez une grappe de raisin à l'aide de commandes Copier coller et Retourner - Tourner. Écris dans ton cahier l'algorithme pour faire ce travail.

    VII. Résumé de la leçon.

    Notre cours est terminé. Et j'aimerais vraiment connaître votre avis sur le travail effectué. Naturellement, si j'écoute l'opinion de chacun, alors nous n'aurons pas assez de temps, car il reste très peu jusqu'à la fin de la leçon. Mais aujourd'hui, nous avons fait des travaux pratiques, et donc chaque étudiant devrait recevoir une évaluation, car vous avez tous essayé et travaillé. Je suggère de vous évaluer et d'utiliser des émoticônes pour cela.

    Un smiley est une image composée de lettres et de caractères spéciaux qui exprime une sorte de sentiment ou d'humeur.

    Sur la diapositive d'écran avec l'image des émoticônes :