moyen
Niveaux de gris
On considère une image couleur que l'on représente par une grille de couleurs, c'est-à-dire une liste composée de sous-listes toutes de longueurs identiques.
Une couleur est codée par un triplet \((r, v, b)\) qui représente dans l'ordre la quantité de rouge, de vert et de bleu. Chaque composante est un entier entre \(0\) et \(255\) .
Image en couleurs
Un dessin va s'afficher...
La figure ci-contre est représentée en python par le code suivant :
image_couleur = [[( 0 , 20 , 0 ), ( 0 , 34 , 0 ), ( 0 , 254 , 0 ), ( 0 , 145 , 0 ), ( 0 , 6 , 0 )],
[( 23 , 23 , 23 ), ( 255 , 124 , 0 ), ( 255 , 217 , 0 ), ( 225 , 225 , 0 ), ( 255 , 69 , 0 )],
[( 197 , 197 , 197 ), ( 0 , 174 , 255 ), ( 0 , 207 , 255 ), ( 0 , 25 , 255 ), ( 0 , 87 , 255 )],
[( 255 , 255 , 255 ), ( 0 , 0 , 0 ), ( 255 , 24 , 0 ), ( 255 , 197 , 0 ), ( 255 , 189 , 0 )]]
On souhaite convertir un image en 256 niveaux de gris.
Image en couleurs
Un dessin va s'afficher...
La figure ci-contre est représentée en python par le code suivant :
image_gris = [[ 20 , 34 , 254 , 145 , 6 ],
[ 23 , 124 , 217 , 225 , 69 ],
[ 197 , 174 , 207 , 25 , 87 ],
[ 255 , 0 , 24 , 197 , 189 ]]
La largeur de l'image est donc la longueur d'une sous-liste et la hauteur de l'image est le nombre de sous-listes. On donne d'ailleurs les deux fonctions largeur et hauteur définies ci-dessous :
largeur et hauteur
def largeur ( image ):
return len ( image [ 0 ])
def hauteur ( image ):
return len ( image )
Chaque sous-liste représente une ligne de l'image et chaque élément des sous-listes est un entier compris entre 0 et 255, représentant l'intensité lumineuse du pixel.
Plusieurs méthodes sont possible pour convertir une couleur de trois composantes en une seule valeur de gris :
ne conserver que la composante verte,
calculer l'information de luminosité , qui est la moyenne de la composante la plus forte et la moins forte,
calculer l'information de luminance , qui est est donnée par la relation \(0,2126 × r + 0,7152 × v + 0,0722 × b\) .
Question 1 : la fonction niveaux_gris
On a vu qu'il existe plusieurs méthodes. Ainsi, la fonction de conversion d'une image en niveaux de gris reste identique, seule la méthode de transformation de la couleur en niveaux de gris change.
On va donc créer une fonction niveaux_gris qui prend en paramètres l'image à convertir sous la forme d'une liste de listes, ainsi que la méthode de conversion sous la forme d'une fonction.
Prototype
Les fonctions passées en attribut devront avoir le même prototype : prendre en paramètre un triplet d'entiers et renvoyer un entier compris entre \(0\) et \(255\) .
Pour tester la fonction, on donne la fonction vert qui prend en paramètre un triplet de composantes et qui renvoie la composante verte.
Exemples
>>> vert (( 0 , 174 , 255 ))
174
>>> niveaux_gris ( image_couleur , vert )
[[20, 34, 254, 145, 6],
[23, 124, 217, 225, 69],
[197, 174, 207, 25, 87],
[255, 0, 24, 197, 189]]
Conversion en entier
La fonction int permet de convertir un nombre flottant ou une chaine de caractères en entier.
>>> int ( 4.2 )
4
>>> int ( "5" )
5
.1280135[tf4)2rj3,sao iug0xè8m1]P6pnl7he=céy:v9ê(wqS/b_dk050X0H0d0n0q0E0m0p0J0E0n0m0m0I010d0q0C010406050m0r0x0x0n0i0L040T0o0E0r0?0o0D050U0}0 11130{0C041c1j051m0U1m1o1j0{0X0q0N0+0-0/0;0G0q0s0G0E1C0G0d0_050$0V0E0H1x0.0:011B1D1F1D0d1L1N1J0d0V0o0X131K0i1k0d0G0+160m0C0n0D0;0h011P1z010e0(0H0D0n0x0H1J1;1?1{1R1~1N21230_0a0p0A0i0o0C0o0m0q190D0p0!1/0i0i0H0J2o1c260D1k0U1-2B0d1+1*1,0X280;1F0D202l1J1u1w0,1Q2L0q2N0D1%1v1J0C2u1k2z2B2)0|1=2p2T1|2Y0i100E0_0p0y2y2-0`2,272/1R2;2?2^0h2{1?2}2z2K01320n2@040p0k362A0{39300;3c3e0p0f3i382-3a3o2^0b3s3k3u3m3b0o2=3d2^0B3z2~2.1y313E333f0F3J3l3M3n3O3G3f0w3S3B3U3D3F3p0O3!2 3$3w040y0t3+3L2U3%3P0y2`1d2|3A3,3@3.0y353|371l2%1c2R2E0X2I3a0J1%241k491n472+442A054e0!2(3#3@0Y0_0!0e3s3K3a0R2^4y3T400e0_0N0H0i0d4D4s1|0^040Q4M3 2:0_4e0r1N0r0i4S3?4O0_0g0M3z0p4,0p4z3C4u042u0d4Z1b4m3f4/3-4V0o4X0H4Z4#3a4P0c533C0x0q0_3{2+4E4%040z3z3~4$1R4;4w573$4B4{4`4|4F0_0D1v0H0n0r0u0W0s0i0q0m5o3@4P4R5s5e310_0q100s0H5H5f0l3s4.5M3n0_231-4f5T1R4P4)3=4A2^4-5(0;0m0X0_005^2u0D0N0o0q1O0E005P0n5R0p200p5w4I5z0u2q1O5D5F0p0m4 0*0-0p0e3O1O0X000r2N0p1F0m0d6o5 5F6w0m5^004+5/5Y010J0y0_030p1a0+0i0K0K0p6r1O62642r0t0p6a0p0x0P230*1u230D2m1a0*0S0r5 1O1=0i220v2F6U5Q5S4`064-5X4N5N040G5z6w4Z0W5P0s5:014P5V4`724T740-0i5R797b5W5t1|0o0_0I7q6G0D0_7618514!5L730;5J7d7y046V6~5d7F7e4(7g2)7i5k5Z047l7n7D7N7j7G0_5K7!7U3b5O6}7d5*6E4,7r742Y0r4I0E1N7a7-7h7=0;7t047v7~6G55567E7#01590_3;847O4;6m7Z2|7T3v0_0j7w7O0o5q2W8o890D0V0_6^0D5R7.7%7I0_7X7C7|7c887*5*5h8e898g3E8t7*7J0q8R3a8q5O4_7S7 3b8w4=1?8A8J548C8+3C7J7A780i8H8B040g8M2)706F8f0_8h8V8/5O923$8X7K8Z8j8#8v8x8)7M2|8#7H8.4}75778G7p9j5I4(4*6 71718#8P8i378k93048n8N7*978s9E3v8%8y8*7)8,4Q8D7W117Y8@9p5f5+9t9u9Z9b5v4 7_7{7L8^879N9B8U9V5)0_0z9,9g7x8m8^8{9a6G81838!9_045#0G5%9:7$9Pa77+7K7}9-3$559Q9/ae9q5g9@45a29Daj5f0z0g7:9A3$4;4?4^95409$7^0H7`0H7|639f370{0U4p0H2B2$aO481v4a2E2G2C1$1(2E0n1MaR0U49aL0!0$0(0m04.
Image en couleur
Un dessin va s'afficher...
Image en niveaux de gris
Un dessin va s'afficher...
Question 2 : méthode de calcul de la luminance
La luminance se calcule par la relation \(luminance = 0,2126 × r + 0,7152 × v + 0,0722 × b\) .
La fonction niveaux_gris est déjà chargée en mémoire.
Compléter le code ci-dessous :
.1280135tf)+2r3,sao iug0m1P6p*nl7h.e=cy:v(wS/bdk050O0D0c0l0o0z0k0n0F0z0l0k0k0E010c0o0w010406050k0p0s0s0l0h0G040L0m0z0p0*0m0y050M0;0?0^0`0/0w04131a051d0M1d1f1a0/0O0o0I0Y0!0$0(0B0o0q0B0z1t0B0c0-050T0N0z0D1o0#0%011s1u1w1u0c1C1E1A0c0N0m0O0`1B0h1b0c0B0Y0}0k0w0l0y0(0g011G1q010d0V0D0y0l0s0D1A1(1*1/1I1=1E1^1`0-0a0n0u0h0m0w0m0k0o100y0n0R1$0h0h0D0F2f131}0y1b0M1!2s0c1Y1X1Z0O1 0(1w0y1@2c1A1l1n0Z1H2C0o2E0y1U1m1A0w2l1b2q2s2W0:1)2g2K1:2P0h0@0z0-0t2p2!0.2Z1~2$1I2(2*0-0g2.1*2:2q2B012^0l2+040i2|2r1c2U132I2v0O2z300F1U1{1b3c1e3a2Y142/053h0R2V2!300P0-0R0d373u2=1p1I0K0-0n3B2;2#3E0(0y0d0-0~0s2N1*0F0D3J2 2?0(0,040J3X3v3Z310-3h0p1E0p0h3(3D2L013#0e0H3B060n3~3I3Y3M3+043;3p2}3K303#0j3B403)420y0-0I3=3L3@4a4c483*4g040N4n413@0m0-0E4t4e3@4q3-3/452W3}3 4o423x440S3:12462r4d3?2%0N0-2N0c4j490-3%4Q3C4k1:0s3P040r0C0g0t0g0v4Z3*4w040x4@4f0-4F2/4S4)1I4_0f4z4T1I4+0-4.0A0t0b2{4%4J4v0-4{5g4u2%4h56520(545p30594-0C0r0A0g5f2Y5m535j4|4B0-4s5l4A1:3_3|133s0D2s2T5R3b1m3d2v2x2t1T1V2v0l1D5U0M3c0/5+0S0U0W04.
Image en couleurs
Un dessin va s'afficher...
Image en niveaux de gris
Un dessin va s'afficher...
Question 3 : méthode de calcul de la luminosité
La luminosité est la moyenne de la composante la plus forte \(M\) et la moins forte \(m\) .
La fonction niveaux_gris est déjà chargée en mémoire.
Compléter le code ci-dessous :
.1280135tf4)+2r3sao iug08m1P6pnMl7he=cy:v9(w;S/bdk050Q0D0c0l0o0A0k0n0F0A0l0k0k0E010c0o0x010406050k0p0t0t0l0i0G040N0m0A0p0,0m0y050O0?0^0`0|0;0x04151c051f0O1f1h1c0;0Q0o0I0!0$0(0*0C0o0q0C0A1v0C0c0/050V0P0A0D1q0%0)011u1w1y1w0c1E1G1C0c0P0m0Q0|1D0i1d0c0C0!0 0k0x0l0y0*0h011I1s010d0X0D0y0l0t0D1C1*1,1;1K1@1G1`1|0/0a0n0v0i0m0x0m0k0o120y0n0T1(0i0i0D0F2h151 0y1d0O1$2u0c1!1Z1#0Q210*1y0y1_2e1C1n1p0#1J2E0o2G0y1W1o1C0x2n1d2s2u2Y0=1+2i2M1=2R0i0_0A0/0u2r2$0:2#202(1K2*2,0/0h2:1,2=2s2D012`0l2-040j2~2t0;312^0*34360e39302$323f0/0b3i3b3k3d330m2+350/0w3p2?2%1r2_3u2{040B3z3c3C3e3E3w040s3I3r3K3t3v360J3i1e2W152K2x0Q2B320F1W1}1d3#1g3Z2!162;053*0T2X3R2N010R0/0T0d3X3J3|0L0/0n423{2)0d0/100t2P2e2g0D482@3S0.040K4j3B3|0y0/3*0p1G0p0i4p324m0f0H3p0n4F47432)0/0z3i4H491K0m0/0E4M3A324e0/0r4E4G4U3s4s040t4T4I4P4R4*4O0*4W040h0b3o3=2 064G4N4k3|3~040d3u4.4~4J043*0t2d0k1,0c4i4_2t4}4q1=0m45042P545i2_4t0m4v0D4x4z3s4m4D5f0:4|4|4#3S500o415A5h3l5r592e5c5e2Y5K3s4Q04020q0c0M5o5L044L5A5E3|5y4Z5C5C5)565%5R5/4,044S5J5?3e5M5a5P5,5.4+0*5G5I5=62335}5O0y5d5!5T0/020A5Y6d3S4%4)5(675+5A4{5-614/684(6j3|5U5_666u4%585~6b5Q2;6r4F5{3}0/2n0c4x145`6o0/4o6n6C4K6x5j0/0g6Z5q6w6W551K4B5w3S5U0O0O6.3|4;2}6q153^0D2u2V6}3!1o3$2x2z2v1V1X2x0l1F700O3#0;7d0U0W0Y04.
Image en couleurs
Un dessin va s'afficher...
Image en niveaux de gris
Un dessin va s'afficher...
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)