Manipulation de pixels
On considère une image en 256 niveaux de gris que l’on représente par une grille de nombres, c’est-à-dire une liste composée de sous-listes toutes de longueurs identiques.
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
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.
On s'intéresse à deux opérations :
- Le négatif d’une image est l’image constituée des pixels
x_ntels quex_n + x_i = 255oùx_iest le pixel correspondant de l’image initiale. - La binarisation d'une image qui consiste à remplacer tous les pixels par des 0 ou des 1 en fonction la position de la valeur initiale par rapport à un seuil donné.
Exemples
Python Console Session
>>> image_1 = [[20, 34, 254, 145, 6],
... [23, 124, 217, 225, 69],
... [197, 174, 207, 25, 87],
... [255, 0, 24, 197, 189]]
>>> hauteur(image_1)
4
>>> largeur(image_1)
5
>>> negatif(image_1)
[[235, 221, 1, 110, 249], [232, 131, 38, 30, 186], [58, 81, 48, 230, 168], [0, 255, 231, 58, 66]]
>>> binaire(image_1, 120)
[[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 0, 0], [1, 0, 0, 1, 1]]
Compléter le code ci-dessous :
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
.1280136êf(9[7ol5.Us3rL]ua;2Ié84_àewn-1= :dckiyjP,/hbRtqSèmg0G)xvpC050K0C0W0t0N0j0n0I0L0j0t0n0n0H010W0N0+010406050n0s0!0!0t0p0O040Y0i0j0s100i0E0I020t0!0+0u0I0V0C1a0p0X0s0C0n050S17191b1d150+04051I1B1L0S1I150K0N0*0^0`0|0~0`0E0#0s0t0#0C0F0+0O0W0T1k0I0T0N0#0T0j1;0T0W13050:0U0j0C1U0{0}011:1=1@1=0W1}1 1{0W0p1J1,0^1g0n0+0t0E0~0v01211W010d0=0C0E1o0C1{2j2l2q232t1 2w0!2y040a0I0Q0p0i0+0i0n0N1j1l0.2h0p0p0C0L2T1B2A0E1J0S1,2)2d2f2e1|0K2C1X0N0E2v2Q1{1R1T0_222?2^0E0i2|1{0+2Y1J2%2)39162k1l2~2r320p1a0j1{0t1/2Y0d0~030A0A0L330C1@310i0F0v0F0G130I0G1B0t3a3d143c2B3f233h3j3l3n0C3p013r3t3v3x2_3A3A3E0v3H3J2l3L2%2=013Q0t3k1J3m0T3o3q3s3u0.3!323$0o3E0o3*2$3K153.3O0~3;3?053^3`3W3|3Z2@3#3B0z3E0z451C473M3e1V3P0i3i3=3S3_3U3{3Y3~4k403B0k3E0k4q39483d3/4c4A4g3X3}3w4G3z3B0b3E0b4M4s494v4b4x3R3@3T3V4U4j3y3$0h3E0h4%3,4O3N4*3:4,4z4.4B4:4i4F4?3B0y3E0y4{2(4}4u2 504y4d4f4C4h4E4W580F0f3E0f5d3-4P4a5i4-4e4/4D4V3 4Y3C0$130G0$5v5f4Q515k5C5n5E4X3$0G3D045W5M4t5O5j4S5m4;574l3C2o5Y3)0S3I464|5#5y4R534T565p5,0G425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?664)5h695l555o5F5V4J5Y4L6i4r5@6l3g5P5(6p5T5q0G4!5Y4$6w4N676m6B5{5)5}6r3B0G4^5Y4`6K4(5x686O6a5|6q5U6T5a5Y5c6Y6y6!6N5%6P6D6d4H3C5s5Y5u6/6k6;6A6?6%6Q6)5q0v5I04785!6z4w736o6c5+6`0v5X7k7c717e5A7g5S6_5G0v5.7v7n4~6=7q5R5*5~7j610v635=6x707z727B6b7s7i7u6f0v6h7J6L7d4+7f7C6R6*3A6t0v6v7W6Z7M7p52746^7R3$0v6H7^7y5g7N7:7r7D6S3A6V0v6X7,6:7.7Z7O6(6E5,0v6,8e7{5$8a758c7j6|0v6~867L7|7/5Q7P807%0o798y5v1M371B2|2,0K2f2;5y4V2{1S1J360C383K6j1J4V8R2B0N0K0~3s2%5V3S8Y8!765 2p2G0C8*8l5G5X457Y010M130.0d8T6M2r0D3E8~8^0E0d130T0t1i0C0s0p937o0~12040e9e883:130N1a1%9k8s9g130(0J8T157K8W1l8)018#3d7@8(8Z9D8+7j8-2x8:7t9G2)5=8^91040I9W0I9r3/0n0K13009(2Y0E0*0i0N201 0I320!0U2Y0I2V272^0@2V9o1$0C9(009x9Z9C9E2l419H9O7?3B429;9N9J8;a99R9V9X8 238`042Y0W9c0E8T9Y940U132F9Z5y9h9j9zan4b9n9p0CaB4 9h0(a4aF3.a60A8$4maaah9PaVaf2Hab7E5G6f3*9y3baR9Ia70E3$6t5BaSai4I9Ma#aXac0Fa=6i8^ap8|aL5h9U9YaQ9f3:96040`0p1%9cb42raDbh3PaIa0bk9t049vaPa,4PaSaU0F6Ha?a.9K5G4!a!8/a|a%3$byb0b9b6amb89l9#9%9)2v9,9.0I0`bW1bbf0p9_9/009 1%a2bs8Sa-8*bw6Vbza$814^bEb?7%b;649Xawb9aparatavaG3:aybc2vbo01bjbO9s9m04b)aKcd3/9h0gca0!0N135LcjaC130raO9za+b-bubAbw6,b=bG815ab_cF7%cD64cy3,5#bv9F3B6|cE7$5q5scIcV5,cTbK9lb23Ucab6ca95132^0#0t108}csaM13aEbt9l0Ebm9qc@5haN9wcxa5cBcR5HaWcZ6`5Ka`bFda8=798@bL3EbNc{cebQ04a29*bU9/200E0xc:c=b$bWb(aJ0I0n0i0s0@bX0d4,200K000s2^bW0N0n0WdL9/dRdT0nb+d4cjcQa86T8?3ma@aY3C3DcYbB5V8?b}am8^0L5X030I1.0L0p0x0x0IdO20chdz0$0I990)0I0!0c2H9}9o2v2R1k0@1xdt0I2k0p1o0Z2de4aJb,cOb.9Jbw0G5.cUd:6T2od/a^5-1{d?9Wc5c}04989a9c0A9o0#ca9h0Rc494azbZ9b0peS0!eU9zb 9l0i130HeYb9eNePdTbgd0bic_c,c~cidmck9ueXe+eMe!bee$eVe|e`blcgeufbbpcw6Ld#d6d%3C61eCeH60ddb`6FfneKe,ceeN320s0*3w1 e(bnf48^e.04e:fGb9clcmff01cocqe;c%13dJ9dfLc|130PfTce0i9U2@f$4Qc7ep1Ze cz9lccf05_f6b!e(e*f@c^bq0rf+5yapfWg1689ng55hf(9naufYfxf-2lc f}d1fagi3g9799e^e%eTf9f ev2(cPfka:6Ta)d*bAfp4neGd,0Ga)fvc5g34xg8gmcggN23gacggc39fwf,13f.ghf;cef?g#4QgneQgqe)gsbrd!f0d$gy3Ca=gBfs5 4JgFa}0Ga 3Ib~b~gKfVgMgdg)04f#h75ygSf*hb68gff/gsc`g(f^bce#eRgrfPd2gu9A0Ig=5Vbyg_cJ6FbD8.g`dbbJh1h2hIf504fzfB0jfDchgsfOglfc0Ngs0rhShlg6h9hWgQ0~fIfKgVc5fR7a0k6vh+fH130Fh%cfhQhr13hYewe=g7h{04hXe}h#i1g0g:g(hw6Tb;hzdf5Vb^hDhA5 b|hHeLb1gY0/c3hf6mc.dFhNhPfefig;gx5VcDideD3CcHihie6+eJ3IcNgvexa/5VcTiDfpcXiHiE0Gc#9Sc08{c)fPc+fPc-040U2@0;2Yhji4h`hTbpf3h;h 040n9b0=g.d3iyi9iA3B78d9iEj5g}bHj4dhc$cebMeLfPdodqbT9-20e3hvdCi,2w0pdR0xdUdAe5dEdGbY0IfW2Hhtgwb/d77kj6eHjIj981jIakc5dob~dMjn1@dSjvjVdX2h0EdT2wj#b$0@e72RjA0*3=f8i8h~8Xj33AeBiSd,7vfrii7jeBjd9!9$al9W0K0sen0N0)3w0I1z0WdD2d0N2!1u2vke2@0d0xjse$2099dDi}0jjEiOaTjHfnj`a}7Hj}iI3AfuiZbPk3b~0/3FdD2@1kdZj1j=9Bj@7UjJj{gEiVjKgIilgW8Kd`d|3ed jmdPe52Ve7e9ebed1z9_eg0Eeik|0IelbW20eoeqesjofFkSiNcAjGfl7*kXkCg|k!j{h0k4k(h!e@e$f{gsi^3Kllishnf7hpg-ir2rh)h^e?goj:i?cbgkhZlui=lJe{bqlr3,ltgObdb!i:i)e~g.kwlaeyjHhyhvgCj{hCagkF7^iKlkhKhMfC0CfEg!lQc5lBlz23fNcncp04cri_fU04g4l}aHi5m4f%f)gUlseMhhl_l9f=lIkTh8lTlohqlGaNi7mb3/gLfXmuhmhVm801hdmel`axgYggf:mmct9ii4lnlxf|lMl~9umt4sfjlbg?84leja82kEj7ikl:inm6h6myh!mAm.g9mdlCmhmJmjg$mlm`h8mOg,mQmKf~g/l8huia3AiCl(hE7uiGl,j7cLk%h3m+m7m;gOhanlgRm?mB0Em^lVlGeNmomPi lZj?mX7@iRnaj~7uiUnejKiYlkhIimi`l=hOl@lLn2gj04h}m}mzhWnXhuhmnnmRbpmUmFb9l|no0~h-m3mfm+0Nc?n/h_ixn)lHnWi;n!i4n(nUlNn+2(lRgR13020j0W0ulC13i|0si~mBap3wi|h^h-3Gj;m}n78ym!81oujM8xjck%h4aqip0pmEo7l;iul?l^m_3LaF0S8V8C8Q8E8N1B0W8HoV2/2*0t1~oS0S8F1Hn$4 2Y0!0A0d0t0Ml@0T611t1vel0@j08S1O3L2|3/0t0K0!1k2S0N1.kmfI1Hp2p4p62T0F100W2b040%jsnRdz9=9@1z1M3L1I0mdP0#pn9:2Vpq9^kde8dGj,0t0+0+3wjuaw2d1k0#041akg0Le pO1Z040l0I0,98l00x0j0x2Hj(2VpU2920pSjspUkt0IpOfA200Be2dPpU0p0:4kdQ0#2^0Rkckep|jnp q1p~1g1k2^0lpto*0w0jkcdS1/o#2S1yqldMpIpK1 b#058VmA8Vl19;18ko0idzbX9{0Cq6kMqy3vi5qB9:0EqE2NqH3m3u0jqf0Cqho 9yo)0-1Spdp50Ep7p995pb1Kq+pfp8a:pipk0qdWk_2v2h1pd 0Tehq^qi1K04q|jWkc3e0ir10xr3k|q^endFb#0.0@fB0pk}0@0socepr02kki0nq61adR9;0x2lp52@0@3urerg2Ro$o|r6p15y1Y1!a01)1+1-1l251?1^1`o+5h2E2v2x130QrV1k8~8P9A658UqOjFl#a80o3Cov5Ur{d.lh7?r 2p8vies3jPm+b3i%92i)bbc/c;n^nun}eNnTnYn3o}5@mWr_a:r{j_nFs63%oy4?sts48b9PsAaknii!oDasoFh^l fPh-7*h:n?n-h?offdl7n}clo0i6n#hKo3smnVo69VoCnksRfZmas.mcgbm@mHhii1hko4fcnxmxsXm|r$gOslt2mSbq0(s*o80~mwsUm:s;3/mDs@aqmIsis|m9m tls(t3n|tmn~0(t8nAkUnCr{kAsvd:tAm%aitE7#tD0FkHoNiztz0FgAtCtGtPtFsDtTtItSk$t5tbi#n_n}i(nvbbjqi.oMc5g%ttsktstqt6lPoHeZi{kunzorn6iAr{g^tRtVlgnJu5sB8ku8sFd@sHc2sKmBsMlGn;h^apshnrlXi1s#t{tett9hi3lWs:uucuh^fIobodsUohojn`ol0?oMtafQm1oquIh5s n,s/s%s+fHnqn`nss^mit!n~s{t@m9s~tpu%t=sWuzt7t9s,m-tfnZmBthnrnts`mNlEe_mrt1hKt4t/9utwt 1BoQ1O8Do(8Nq%vg8E0/0;0?04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)