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
.1280137xh15-js3:/SC né0eI.G]R2;cfaLoà w4)(,_u[qb=êèv8imtP69pdrgylkU050$0s0X0C0V0*0i0o0A0*0C0i0i0Q010X0V0#010406050i0M0W0W0C0%0)040m0E0*0M100E0p0o020C0W0#0z0o0x0s1a0%0O0M0s0i050l17191b1d150#04051I1B1L0l1I150$0V0T0^0`0|0~0`0p0(0M0C0(0s0g0#0)0X0d1k0o0d0V0(0d0*1;0d0X13050:0P0*0s1U0{0}011:1=1@1=0X1}1 1{0X0%1J1,0^1g0i0#0C0p0~0y01211W010B0=0s0p1o0s1{2j2l2q232t1 2w0W2y040a0o0Y0%0E0#0E0i0V1j1l0.2h0%0%0s0A2T1B2A0p1J0l1,2)2d2f2e1|0$2C1X0V0p2v2Q1{1R1T0_222?2^0p0E2|1{0#2Y1J2%2)39162k1l2~2r320%1a0*1{0C1/2Y0B0~030L0L0A330s1@310E0g0y0g0e130o0e1B0C3a3d143c2B3f233h3j3l3n0s3p013r3t3v3x2_3A3A3E0y3H3J2l3L2%2=013Q0C3k1J3m0d3o3q3s3u0.3!323$0j3E0j3*2$3K153.3O0~3;3?053^3`3W3|3Z2@3#3B0H3E0H451C473M3e1V3P0E3i3=3S3_3U3{3Y3~4k403B0f3E0f4q39483d3/4c4A4g3X3}3w4G3z3B0Z3E0Z4M4s494v4b4x3R3@3T3V4U4j3y3$0b3E0b4%3,4O3N4*3:4,4z4.4B4:4i4F4?3B0U3E0U4{2(4}4u2 504y4d4f4C4h4E4W580g0!3E0!5d3-4P4a5i4-4e4/4D4V3 4Y3C0r130e0r5v5f4Q515k5C5n5E4X3$0e3D045W5M4t5O5j4S5m4;574l3C2o5Y3)0l3I464|5#5y4R534T565p5,0e425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?664)5h695l555o5F5V4J5Y4L6i4r5@6l3g5P5(6p5T5q0e4!5Y4$6w4N676m6B5{5)5}6r3B0e4^5Y4`6K4(5x686O6a5|6q5U6T5a5Y5c6Y6y6!6N5%6P6D6d4H3C5s5Y5u6/6k6;6A6?6%6Q6)5q0y5I04785!6z4w736o6c5+6`0y5X7k7c717e5A7g5S6_5G0y5.7v7n4~6=7q5R5*5~7j610y635=6x707z727B6b7s7i7u6f0y6h7J6L7d4+7f7C6R6*3A6t0y6v7W6Z7M7p52746^7R3$0y6H7^7y5g7N7:7r7D6S3A6V0y6X7,6:7.7Z7O6(6E5,0y6,8e7{5$8a758c7j6|0y6~867L7|7/5Q7P807%0j798y5v1M371B2|2,0$2f2;5y4V2{1S1J360s383K6j1J4V8R2B0V0$0~3s2%5V3S8Y8!765 2p2G0s8*8l5G5X457Y010+130.0B8T6M2r0G3E8~8^0p0B130d0C1i0s0M0%937o0~12040J9e883:130V1a1%9k8s9g130I0k8T157K8W1l8)018#3d7@8(8Z9D8+7j8-2x8:7t9G2)5=8^91040o9W0o9r3/0i0$13009(2Y0p0T0E0V201 0o320W0P2Y0o2V272^0@2V9o1$0s9(009x9Z9C9E2l419H9O7?3B429;9N9J8;a99R9V9X8 238`042Y0X9c0p8T9Y940P132F9Z5y9h9j9zan4b9n9p0saB4 9h0Ia4aF3.a60L8$4maaah9PaVaf2Hab7E5G6f3*9y3baR9Ia70p3$6t5BaSai4I9Ma#aXac0ga=6i8^ap8|aL5h9U9YaQ9f3:96040`0%1%9cb42raDbh3PaIa0bk9t049vaPa,4PaSaU0g6Ha?a.9K5G4!a!8/a|a%3$byb0b9b6amb89l9#9%9)2v9,9.0o0`bW1bbf0%9_9/009 1%a2bs8Sa-8*bw6Vbza$814^bEb?7%b;649Xawb9aparatavaG3:aybc2vbo01bjbO9s9m04b)aKcd3/9h0Nca0W0V135LcjaC130waO9za+b-bubAbw6,b=bG815ab_cF7%cD64cy3,5#bv9F3B6|cE7$5q5scIcV5,cTbK9lb23Ucab6ca95132^0(0C108}csaM13aEbt9l0pbm9qc@5haN9wcxa5cBcR5HaWcZ6`5Ka`bFda8=798@bL3EbNc{cebQ04a29*bU9/200p0qc:c=b$bWb(aJ0o0i0E0M0@bX0B4,200$000M2^bW0V0i0XdL9/dRdT0ib+d4cjcQa86T8?3ma@aY3C3DcYbB5V8?b}am8^0A5X030o1.0A0%0q0q0odO20chdz0r0o990c0o0W0R2H9}9o2v2R1k0@1xdt0o2k0%1o0S2de4aJb,cOb.9Jbw0e5.cUd:6T2od/a^5-1{d?9Wc5c}04989a9c0L9o0(ca9h0Kc494azbZ9b0%eS0WeU9zb 9l0E130QeYb9eNePdTbgd0bic_c,c~cidmck9ueXe+eMe!bee$eVe|e`blcgeufbbpcw6Ld#d6d%3C61eCeH60ddb`6FfneKe,ceeN320M0T3w1 e(bnf48^e.04e:fGb9clcmff01cocqe;c%13dJ9dfLc|130hfTce0E9U2@f$4Qc7ep1Ze cz9lccf05_f6b!e(e*f@c^bq0wf+5yapfWg1689ng55hf(9naufYfxf-2lc f}d1fagi3g9799e^e%eTf9f ev2(cPfka:6Ta)d*bAfp4neGd,0ea)fvc5g34xg8gmcggN23gacggc39fwf,13f.ghf;cef?g#4QgneQgqe)gsbrd!f0d$gy3Ca=gBfs5 4JgFa}0ea 3Ib~b~gKfVgMgdg)04f#h75ygSf*hb68gff/gsc`g(f^bce#eRgrfPd2gu9A0og=5Vbyg_cJ6FbD8.g`dbbJh1h2hIf504fzfB0*fDchgsfOglfc0Vgs0whShlg6h9hWgQ0~fIfKgVc5fR7a0f6vh+fH130gh%cfhQhr13hYewe=g7h{04hXe}h#i1g0g:g(hw6Tb;hzdf5Vb^hDhA5 b|hHeLb1gY0/c3hf6mc.dFhNhPfefig;gx5VcDideD3CcHihie6+eJ3IcNgvexa/5VcTiDfpcXiHiE0ec#9Sc08{c)fPc+fPc-040P2@0;2Yhji4h`hTbpf3h;h 040i9b0=g.d3iyi9iA3B78d9iEj5g}bHj4dhc$cebMeLfPdodqbT9-20e3hvdCi,2w0%dR0qdUdAe5dEdGbY0ofW2Hhtgwb/d77kj6eHjIj981jIakc5dob~dMjn1@dSjvjVdX2h0pdT2wj#b$0@e72RjA0T3=f8i8h~8Xj33AeBiSd,7vfrii7jeBjd9!9$al9W0$0Men0V0c3w0o1z0XdD2d0V2!1u2vke2@0B0qjse$2099dDi}0*jEiOaTjHfnj`a}7Hj}iI3AfuiZbPk3b~0/3FdD2@1kdZj1j=9Bj@7UjJj{gEiVjKgIilgW8Kd`d|3ed jmdPe52Ve7e9ebed1z9_eg0peik|0oelbW20eoeqesjofFkSiNcAjGfl7*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^iKlkhKhMfC0sfEg!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?mB0pm^lVlGeNmomPi lZj?mX7@iRnaj~7uiUnejKiYlkhIimi`l=hOl@lLn2gj04h}m}mzhWnXhuhmnnmRbpmUmFb9l|no0~h-m3mfm+0Vc?n/h_ixn)lHnWi;n!i4n(nUlNn+2(lRgR13020*0X0zlC13i|0Mi~mBap3wi|h^h-3Gj;m}n78ym!81oujM8xjck%h4aqip0%mEo7l;iul?l^m_3LaF0l8V8C8Q8E8N1B0X8HoV2/2*0C1~oS0l8F1Hn$4 2Y0W0L0B0C0+l@0d611t1vel0@j08S1O3L2|3/0C0$0W1k2S0V1.kmfI1Hp2p4p62T0g100X2b040vjsnRdz9=9@1z1M3L1I0,dP0(pn9:2Vpq9^kde8dGj,0C0#0#3wjuaw2d1k0(041akg0Ae pO1Z040u0o0n98l00q0*0q2Hj(2VpU2920pSjspUkt0opOfA200Fe2dPpU0%0:4kdQ0(2^0Kkckep|jnp q1p~1g1k2^0upto*0t0*kcdS1/o#2S1yqldMpIpK1 b#058VmA8Vl19;18ko0EdzbX9{0sq6kMqy3vi5qB9:0pqE2NqH3m3u0*qf0sqho 9yo)0-1Spdp50pp7p995pb1Kq+pfp8a:pipk0DdWk_2v2h1pd 0dehq^qi1K04q|jWkc3e0Er10qr3k|q^endFb#0.0@fB0%k}0@0Mocepr02kki0iq61adR9;0q2lp52@0@3urerg2Ro$o|r6p15y1Y1!a01)1+1-1l251?1^1`o+5h2E2v2x130YrV1k8~8P9A658UqOjFl#a80j3Cov5Ur{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$gOslt2mSbq0Is*o80~mwsUm:s;3/mDs@aqmIsis|m9m tls(t3n|tmn~0It8nAkUnCr{kAsvd:tAm%aitE7#tD0gkHoNiztz0ggAtCtGtPtFsDtTtItSk$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)