From 7032e17b0d5c2343c4525b7e1bb3d2bb2f2754fc Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Mon, 12 Sep 2011 22:39:13 -0400 Subject: [PATCH 1/8] Initial commit with working logo generator --- data/scipy.png | Bin 0 -> 46513 bytes data/snake_pixabay.jpg | Bin 0 -> 77582 bytes scikits_image_logo.py | 225 +++++++++++++++++++++++++++++++++++ scipy_logo.py | 262 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 487 insertions(+) create mode 100644 data/scipy.png create mode 100644 data/snake_pixabay.jpg create mode 100644 scikits_image_logo.py create mode 100644 scipy_logo.py diff --git a/data/scipy.png b/data/scipy.png new file mode 100644 index 0000000000000000000000000000000000000000..72fa05086118ec2bcea9985e93dc1cdc8990919a GIT binary patch literal 46513 zcmZs@by!qi)HVzwNF&`KNVkFrNR85sq%BU1}QI5-#hZ^{GaxbN_8-&o}hzChM6$1HaVeIcn{U?MvD28OL~ zjz06eN;K4fQ*zwu&GsH$W!CqVr6Hzy(cLtpJ8ufefdRYJHw{sS`2q(0G(y(HJ}a53 ztgYsL&*ORSeGhA=1vm`5;n%0$2rC#Jis{&<7VhuOZob0>r=z@kO{+4qBS-V}-52{y zxAjTLGapUWR<~>Ca_6G>;i`C~uQ2eUc>EMo={}(?syYtnJO4r&V}}Fs!t&(NP6)4@ zt4mAeGiHH5>Mz{ET&(?GvNcM5v?Jgz5$seYpo7YT{g1SOvajtMP&`kT4-$4`Kai0kA+55Jlu?}F<$ zo-URweY&#k6dT52Y%xsrNXpkHl&9O^lefKwg#3hz)kU2@q6ggsZpo6f>W9CsA-Kl# zqjUSB)1Z=?7aHKJ-chDCpd*}9M zR-pPr<{bYm!wcI;;Y#H2n|HTNC0+8Xu9rPprIV`Xkwppdbw`VQZL4v$Boq@Poy+#J zI_^=UP7!M2(S@#%hWH&4p&hlDS8KjpA%E;kuMb&uqk3Z)1M%9HRgSl$zdCBX;$BFx z@Zu9#VjEzq9JenD_{puB5MvB8lepf?Z-`h^xs=yAJ-jjQ`}28;@fDrZk9Demm^QY< z@JZu4&-zZU|S-f2^l4fY>b-JLBpsm2CI1(hRe#?2AE!O+y|BRaWL1o;)`QANdOiiWIq0 zC>!9(octja8;r3d(b0XpivBDq5p|p0`ii{@Gs23B6SNbC(geTaRP;BUCgVoPt;o`N z-=F`fTAmjTHD(GIyHW!h&3YXU(HuElV`JMN^Uxp?yvH+YcofO zDQJCR#dXny|11Nnipsv&hB^N`!xj;AhMdS7!_x5rXQk$r$3w?$W8e-(>?Syt%*J0O zE71kkOs`g5#nBk9jy!Alx_kasMQS>{d467pg3p=G4-SM(>HXjbkCHb+2`ATPPdJFa zKQTs_et89Kl1PR=;?>^$Zr2&w022R;2)gme{1n7tCtJiZT%+3A6f#XkQ+MiUdwl+=7!v%of8t9fNIdp$KND-lWRxmeLnh zg}QPY-1(G6B#|*o?;_ngb%THX^V-EO5RHp~t7BY3D`;vus0-7i-lm%Dd%3`y{g83b zkf`2X3;*kt_v>gIS!5*2>>0FfJ<{8L_!g221gG7Ssa0sPPaa;~{Y{qo!lCFe7joFM zD1g~>N|Ih)Z5d--PZyP`bj&oICu*3dSR4!S z!NLAVmXwPK!0F|{nP|r-B5m27Z&~9C=p82Z1gYIZQgA&c*!+!AM~gJ1q)*JcbXfn+ z)EeUFspNe%mWx!UdUz|8-rlPS5(gSqT}8ZqGb7Q}e;rq_%n-2kR40YQG+4DUw^5Y~ z6lSA$b|IE3n`7Be`P_@HRrS^$3ocd%xZTZ|P?Qzg(p`lLmRTaYo~q>VKHwEw>ua=a z+p^n{Q9739li^VE1Qi0IqTVM+{~k;4DR3;KkF@#~(%_PedWRlH_0q#kmT5e?A=@q| zZEQ97Rv4v1DmaNL%RnLKt=+FPlaU&IpIy_(!UZg#Mgx#c!MDu?Mi5|223zGB zM-%1Lb_X=v685M}NqCZ}W|vDGx%QTtzpL$!nU;2URWfgDi2l_g8xi0|)Mi@C1U^bb zk{ljwO_Fou{-0+#=)O=ceh06Xx2>E}oURt@U}ULlck}S*cXBh7Y8F$AvaRIgf`5voYa(b-4`#}#vkuLG{Z36NRl4!*`zTL-JTT<{?E0n& zc+otnAKC`*EdETZ;nMFf8rpNX;fe8|Tx1Zu!5FEaUb8~*IdsD3@-bowR? zh!(|f2hbjGgwne?3h-eicz>P!5tndARyx$(40i$raL8kJY=pGFdygTWB$Ut1<%IFO zYTD;%Rz{BT#tQvoLMzl@U+(8*a#QqJBykK2ax=6|Fncf%d?uZ-i?G0{V0de5_RWd3 zXnui;EC(~4+UB#@kHZ!m{5Ej6mGkj@mhJT+$r1AO)-l8d!IG*3r;bTarNxm~UJTZK zKy)?y<2c;(xk#)32Ap$FZFX+qinPViv8-#lOQ;d)4db;6TJZ~(iAv6 zDqjZ0|NFc+D)4-#q2pfW_k|z7(h(qoM(iyV%a+ zYrI#ibLTfr2uvyyR~+G(<6>C`giDI>)H#oNpMO%7WRzjoZ-@x=kJFlE1*~Fj2{kAt zERJ?~c`x)T16Km{yta~w!eaNbUSLF{N8W|^fg5z1Mg{r_X%9{~}zpy`bs z*iR&f#QEg7b~dL3_MA* zJ^JlzZa6irgeop+f=sz6<#RPA-D5285I%2dUSmgeCH7Ao;6@HzbbL~dD*T5wyQ_Yg zyC>w=xumLU6)F|>6A&^H%V52w?Bz|DoMMRv;}_~rF8_Ea8)e`G8FqAad(~c;o#sMT zq4p@FQ(Qyk*i0ZR?1SUeFnTLXwvu^|q)6m5`<_^I-+%6+AD6Oan_qerGVOMg$bZ>p zHdT5aXjg`f1wziHRmig_EwX4W;vQFGewqG{7Wud%N*t{9eD04RRODFQJxnkF{6Tn} zB=1xE;ujyN^#Z{uPF$-A#@3-E_&-T;;WGYpOlkLy>4!9|{doLa_lRy$^!Her(=W8| z?=$7pkD)0Ij$Wj$`V#hsXJ?8WV!rPm%h1OQ*aD=JkLoR(Xfg~EB%|v(Ds1%UHJ}70 zKB^eqJ(GlWKW-!bO`b;aC|e5F>hPHIg$T&Q2|EfSCXZ)DiWF>Ki^2JT5Z&DyRu8HA z3{GH{v^;~=|G!S?9IzqBl4>P!KKvw_5YO`W(N+Shqn?}SfV$QwraG;LbL>U!4d=P8 zGRq(G{o{d%7yumx-=w1pd}?_|d^)GW>qP}+n6qI8KB-sjtrK$IrK#D;_pB-k&g*%7 zNe0zFZ>W(2u7BG?d)VH0=O_rg-~!tJk`;5!QAS!-{=}^=a1vZ z>id5)h@{E8QA6?7xDqub^NE0Lhi`D8V3dn1NRPC0WwhF!6>FnLk`7S1Jo3UX#el_M z?R_IrVQ)QHi78kq$r49(BoD#{KBtCOQK&m#l~8TFi>3BV^zQM>l%YT2Q0BE1lp&_D zWQp2+7_A)#$A_%a?}+!JV@RD?hHVT5A8qu>vNyKl{CzO-yN9{>V-3lBADt*4&pwr|y_wZeit z_EpX4_YZ1agwR<~Fs&*)1Ue?)SYx8xVD&3u-nA&k)t`NZ&)}rF*Yd<>uFCfY({3JFI+cp;h%KFu6~!eKkQ6ujT1$kj-OM)H zN@t!6cS!HOBlac%(f+*bxtM@RG+|bbB7bLiBqpqvW%tjr&HG}|uUZw&Tj|@?k%}AM zSHWNbcy@Mn*VVo8qjspJh+DVMKW-88-nOxdOJh8E4RadKMxJi%5)cHR0iqfLJ$XA8 zjZ$(Rxd`4mf}FhPM%_wu~Ig1=aPox|wL=Y3BEmz5%K95Ke?Qa7+G#to8~K8$C|* zyh#CPSciOV^RWTl-8A`YGVgvm_67l=SB7`fM za@3fqtyfsWQPLjd)4q4t$;^wpyR^>*rr#yk6@6Qm3y*tT=`D)f*NlHg>*LE$zVn|P z+DQ&{+Sv^__yfoND6Y5COm{RkqW!0%qvvgeQTF5G@=yZC1Ygm>c6kwEc{DzdaP+os z`@au;!`hfgtCAs^lLo;&P;K#L?>)=^7IkSfuxa{2XSv|cU%Dk>&y99%-&;HUcb5k# z;EuH@!*(QCrn2qboz4>dKh9I@1=#l-2VFeb$iS$_W1l^$NsY|$e{v-TaH?riImiAl zctu8<8t>@De+=T@l75!10fEnOgA~mGi2I@&-=zQBA}UU>OIr?58F^6@SHIDX2xbmrU~qADot3j$K&eaHWchc>Utr|1GY2>G4Z>BUn?#aI!E-O7HbY zf5t}n))4-Gitc_aWb}imy#2E<9ZNHw48E&J(grt=0!KzGbB8Ea5B#!UQFhR$Do(!- zHQwI85N}}a2Hkwn)$Fs%#5pe5V;#|B0(8WQZQ>TU%x(nDo<@;*pxMX!0|@?BP%+J+ zG?E>cW>p$VvMrPng^`${#itR6Y?1yQykPpi75ZSfuKE;jcw7{#y87L1Z)b1xMdoYC zK?>Ud)9GUe-k8uA0APhfoWL@r;f9IOOS8DXO&uY29`2K5mcVGCFZxhvz|DEUF?JVc zb7-C2g!nZ3+jAy|;^~m_WSeJZq_MDIi0 zuTx6vCNGv8^W;C2sc_f!=EOC;$+hON{1DXGIDd4#EwCD0>=^XS5BVQ=1XPpO@EceC z+5)wt!gkegjBT^jxU9bq?;Gl5Kkz{Ie8b&GYUAAuCpbJc)K6Q$O`_3@_Jh zX((3za2Um@$FHzMGvYhJc}99J);(O5V-X@e9juFq5QsPE+!*3kn=m_8kQVmo<(tPg zV?_u=9;8d3L7vUiUKXdlwZE-BXJ{K-w$>)-n2<`bs%GoRj~ve(!HQ z5Tw>mXko7}XhNn;1L08tvxp8TqZ)&s7@gEPy)giK4&xhN;QRO@zOBxEL4EZ){9V$v zMBdUZqVD2fR>jII=&uQ~7?eA*Q2ZI{+?nma+eO_cC(k}+d)Y*sQAsh4oZyb#>kX9(gr7?qGdYmUjFo7@0K~c# z6JhLE6-lMN9nh3g-IdPGHVfoPaap@tFr#TUAkP`D0TWFvBT6A$_xxr@k^(SBe$QeV ztOt%2+*}9PNM)sv7nOE>+O)-#D@}XdK7x@|HMryr*Gk-srd0L#*iNILUoD!&{BuL; zlm3s6GUdPQ?X3S4AmhEG%rr=4xrCIy&Lda+s#Ama@a1suj)*KNi?RR^ahtK$y_JN$ zRg4ox%(l3?YFJQkeFdGkw*!ojjuFtHwZ+BlzNW$SQ3ee}z|s~!R=zD%PyKe6Rk7Mk z5;2_$;jx2DWY*h6unw;JbP!xk&{a6rkys#QO+h}rFqvZ|+Pgl(@P0w^fboA)fYwiQg zYODBLiG+51^8K&OMoER!E&ULGxLO7^pKTJA$TnS!@I~-~*1++L#|CAD zS8Cy_wm^HachP60#i{R91`hf`y8`o{>9L&Ks&%2MW0%m|o5nrrenz@t;^O{JmN&#( z8*~+Xv$=nc4*(_g(<8`_r8|bm61NE3O?h(ENzbgTOS)wL3#{N>5?Hsb;cE4f8Rg{M z_ILw5CI$?27Iwuf_F+{jfEgW`wQnO&vK};hw{xsr7CTkv{8Mi*p?zd)sdv|`xlb+( zjEo8z*#4{;`2e|Qm$Sz2965Ze-z!FtdVjPanMiseU0Ug?uTvfv7}%ZCdM8gTS68u% zj{hgN|1Z0b6>C;RnTOHqueJlm_+ByIl;As9n^_@SB-Q=qBT{X>HT49h$i5tIERbFV zURf3W`IEy_B>%QNyLq6*A?7cXRKxzL_feYM{275IVln84Y*>HDE$gQb0TjPnWHL?e zQ@1J)+4}c!sp*b?#;gbjBkG@-8>-%_Ki@hlBObIzxN-L|0D`Z`Ld(G8q|jR(ktJ+V zR8l2kHB~BaywDQfmlS`#wiW2odhafgPPAnU!7{- zn0wWzY^i4P|MX{J9C>KWEcAK-2>S=sggpz)!5UV!aR+0di8qCmxH|h(rv)*MS2QKD zii;*Lz8iNz`}{bcyDw0tU3|p2gbn)6g)>D;Qx03O?rWY0x!^av12zM<5w5#~b4wa$ z*=n<5l#4RW_^z$8>d;w7jFL~#@d8yT)u39@J?JJ$tG=F|JsKH5F*EhNItwrFS~Akm zBRut^Qgep$LBG1&dn>QcX=fo$w_{d))#pvW#-%v|J<iuQOLT(%COgN3&T{RrX0gy|6jfb2mdr{^!0c`~CoM1yoS zvK6X8;H%jSQI;9fab*VH&H?B`Ts4DI6lT#wLr zWuDV;1B2904BV6ZxTh{VAb7cQUB8*QiO0tGCueQM>v zO^m}UL(ob{L8TTqvVhyyX7=N=9^90Ya5CseZX^Iyjby}TAnll=<6@2~&ES%KcsmGK zHcj5*ktQy-J8#45_q_HQUZp3`CKd0NQr8yzv154t=Lw9o$9Z5O)jbg*HyEs?pFhhB z3ClD#D8R)Fd!(0?HUZw7xDA}D6cNvjccBJS{FOhvQ%XW)Tr?l42$ z;1;~PjIy#*EAcaXy0Mmfaz~)Qq(pP(o==lwBqasO-f+yT)D#H_0UF0Vs9O>mmyw{%`l){Z5AT%YN+OvcK7EILO3X4g z3J$jYyAzVMZ@djqXr_LgUS2kBUcMR&8-{sgSbOFBOaLs}bv5mw^%8IRB{CD|n)&i; zMP(^?oj}FlQ06pn@0qPNkbn`2de zK+~|Jsz)uLIgw06OF!Ph)uN7!7k_^xd9xoE@r0DWn8g04)=X&wy<73Je>)c|np)wcRO%=+O9$jtucbRL+kpnZES>58s_xou%oqBx z$-D&XX4k}>$%gXTk#mw-sGA4M!Fg9kRIN@jfDfU2e5P8}?X9%%6TSYw35j3OK=Whg zv;oSN1U!jk3Do&VVpH?pTV|*uw1SU#(~uabMoh0vpJT{}mfTJ=da(%7198~H{ftkHA#m!SLE?Hp3|m&#*D zZ8G%+5P_9;fiOsWdzJF`n5>~i?%Lq+Q zGTh{HAgw||e|_BQIb03Bl_ttfHPojv0&*^;cHM z?ap%HuST3T1z*Lc($?wTdO|CP&5TQ?i9gjj+xi5Zty zET{SsZeJ8u`B6d_v3-ep-q)RrT}%|r6Gt&;t4-mBqU&jSQd%z75!U56*UQo#r087MOP)m$Gl$g9_#UDY)cjHt-gNbF z{E|^>eNkCIAd!G{7Y-EkJN4eGgouE{y~nOIJCuH{oJ^q+>Z)Bz0@cteP`~7ny(nXR zfdyG>Xt+EU6HTW=f3OrFL1c!QMOmq?(3~a>OGLLdmjH0>@VleUWpZ{`(YYL;G0f_b zoWS~_tZVD3sc+|-y`Paz)HwmkEZnV!qn50hULDg$$WcTX1Q(yib*4N{5?emJ%1|1SX*Vqf&t)Y7pTn$IqpSC|xGQ|tyUNA%vMFmR!AuaQ8PC{@$6cAbI3$t+rosf??;hfN zgeVMAi*wE|R2x%jJ4BVTG*u8axER=-&rLJUT&imNbtS6DX71}VsSeZj#bM6!mD^|0 z-PgEPOwT_s<6c*A1f!5ISlUf?zrfBkL?heaHu~xe7`{-ZBd1msw zJX34fH|LR8G{QR=-ukqbi{o;hW7PdN!d+VvpHu$(=gaD93BZ6NlcZ$af9$sF0gZE& zH)8TAJ3yOj^_ZTIQ78#8ycw(F9QRZNlU#2dh|$0wzATvlIN{|B>w`DX{t|ofE3(VIFRh_v$-`aRFgm@t z$^;+nI6T{Icn_F7SUyp(Fsemi{d3M;o6{zz0JcD`eUh~95-&&%C2>rUY}mOs-)3VW zv}!=r(SKoEq)W(G6_s#~x>-}4olre^=m*Z2TT3k*>@Vf^rXM5%{fu3D=hopBq>J5i= zlLa51r3KdXh8N3QWj%Bte%QScQ~`1~R14`R50(QE4TMOEgU0I_f|mPqMcKR{u0t}f z(Z##Ttz5r(S!=gJ!{;2NMG1SVuy6YOHrM?=ad1C!5swn4d4q^hWzOe9&+>BbX%GbE zDU1{ak^CKeBS)tBoNv4>#Y5i%es#YZd$2Y;ah&>(GOXYNL<+J&k^E@(wXIL6b6(l1 zA$F4qXodr2J=P-18^JZrj39{bL~=u?XlEwm)7C(h3{_kxVpsT$(!hJ>i^S%3q%IeJT zxzuK?Gt~c@p3vh8Xdi~@`SQ=XOrVeC7uc7&hQ(vQ=j(pEj#-W5Mn$V+RKojdqNep) zA-RQ(f#hNC^aF(`dU0$UrxAc|^vS+1WBSxXxFUa0z1t(oSNQDCXIXvIxTu#_oL07t zctU>b9Hc{o{R+{mZT56%Meu!qo{*-14y+Xo6X6Kw;;1CaZcWQhCrA6}s&}lTBB_-a z@k~2Q>(!={WhH24=n)nTG@@E@8iWSs*staP-B3U+8TnlN=; z?KlnA>gKY-8nlMw#PkFF9j8{4V2q)39p1~G0J&i8UX^I9LEIvM0+1JO zfb@HHb&Tfc&o3V->N+w}IB-}j&x87DZh1RQcBmF3Kr_HF{g}}k#ZG$Vrfl(}O4y;y zz$ia~|23XOSPQ^X3R#z)qDN+k*01Ui6*mQ**G9AjsdhPW} ziJ^F8u+t8jc9!SquvCYHO*_iQYJkq|yuboMZ28Lfjb(g?3Nr;Ak_k-4T;j*A6+CM}C0iB=Li{+`4|C9)w=&)1Y6oE^a!e}iya!?d~<42WID=i50)~B6(I;emLt5a5QBJ3B3`RU=T z9PcWZoAdsem6B3-6skjativNxh+d$#CT_#?n?@BNHU-8pW{@xqHhpHz3P*10=c6px zZMY0gvq4YJX$GR?3UFn|{3X8wUJW=$`EiZa<)xys{W&OU=3C~LmTRH4L+gu*ilSE9 zEmRRmf3`}DiqVVsAX0eigRG~gXWcS;L1x##c+FNzy893ruY@C zb757q^A=KtEKqYcya?94w0E#ZNv9|=Pm`U#23kr-=RY#!LUc;@NpVvY^_qaXwp(`B z9Dg$S>4UZ4KxSw)tS#4RRc_pzoSK#x>GlC&_1*2JIZZWt$%SBttNE|2cH_Y-{?s1! zL2igAIHb;vl@k5B3f0BV%hOaxr<~feXsssM*e>VQtl>$!vz85K(Z)6RJg;;6nLCV^ zeeqZf4{{K_H}KUrJ$nFrcT;;(I%V;FLK5`l?F9Do=j`;Ssuflzqy?~-5pM@Ym6W&5 zJY>Z^E3}GIi@&e!H3k`oq=>0CbeAB1C&T<1!6+TV6ZHPh@AnNxn$sz_R$1MK6QV5j zL+kb_K$s0*^pKxPi;Qa9n=3eBJ^Ib6z0Jfq;@n{!7AUg?X8uJfhkDOhJ?g8_mfPy% znsYz4Ags++{cip?M@Uu@fC)9GUl*I0ar=rt^j#Nf&8sLn z9_M?btNk-ce}2bFgV_gcJ~MN5a{@?Whue^rb;^6u>*)|u!;#zE_u9+-?GW;LpeMuH z=6f^C%knu648C(adPYB%n^JL+s?7-)nYPU9hXfxPs>LIO{hWwuK4@bqqXEh=-C&6@ zt6?{%d+L~vlT(p&v^qJwhw+(q2BGB6dFb=U-{g)SW3w;9#veuRExt1)-E#PGCDH5+V&0jTDXP-+vYXd%kR%f z00!xmS`070CMEw{$vro(fZ>P+0D!D5(fyqDnTF>aZKK}BxR_}=ig&T5;=K#$1VOZT3kVfq;)aO1a`Xf~%_+2#N_e$$R zb**RWi@<}`k)$lZZHR98NDF*e{3Ybf^SUVZ0*@HhV>EQvU%9@qkX9woXY%D?&q5Ce z9+)|>5iK;vRm{2_T%ZMdaQJg0IVcFlP1)&%m!9AMhUrLjMQR9pM*LZEX#GqDcaFUA zoUQlHA{F4EsGOs3G&2A>hV-?6j-;ZU-xD?afE-ko3;oc!{TW>2{vI{2-AEKP%xTBZ zm3O@-I2gO}%HcD0V-Y~_325Y|-pL)}KJ;SEUqNg$E!Ra(;%?#fbnfCjuU3*RM<<~L z3o9Wj#khpy2-=&K(ZGaIfJi$XGpQwPE6cF=SUV~xq&X1#LaRVicd!iL;sb;o9MiY% zvG8|=itx(mAc-va_;yv7ap-DiQ~5;oz=BNSQZrrG`yEM3|V+jBJxphGDc`AU`aJ}vY8dSqedqNmNJ}p7`E`R&Y zSE2sX#H1pE897;mue^RicyIJ zTp@*wlMqUGl_Jbs<=<2G9ig7iMYH;f*k4rd_nG6 z*4ObG<<*TRmTF4C&_v=8tH&dBv!w=2GXi|`Kk1`(?N-1jM#_-5?)P_toRpqk~3Zr)%X=FmRWc5^E&ap zV-fWboQe6*msK{du$-WBn8Iy<2JA_>Wz#&{_F3YPRbo}^L6f{R(6nssue9u%-vJWQ<%I)xVQM$cG){^d$k?wB=)(Tqm{tsS$8q~`OK_Xd_|C=qc{MINn& zvOb2qCp6a4re~^ThZ8o5b=T&A|(Mq2^{$uN>-h<>zSGgS3rJ(9w&dn=`n%BiK{kcpAIv zFl`b~*|jc@7bSgB#TWR0>w6zyn8`NS>fIGPV zN2dwG*lG+l_*LuNL5#WK1Me%Pmq*iJ072zr$kowosp@d95ph7EY;;r1 z^C+OM4r4`1PkcL`l~if2u{o^k8vM|YE{ehD>@EgPgkw8e!L)%+=`4|;a2~_`IKvEv zZ(txRmw+@A#)T-rUk*b5QihK=XiZf4H)keOhih5rYv)hn@vUW!oxX3bNoN}qr_a7; zH;iarIp(eo9gotl_d2qv_v%srcy%(-uvUH~b9BMn;mEpSe)Psz1hl_cwsAFPCQE&; zyf(P!=c7ncjBlgysyhG;Gi=szS0gUl8D`!h_FVIsSi~$B1RIZB2mo-S`NxD16i$g| zvx51HX}1bp?khlP8t2nW^2xla(R{6PiJn4wdm)!hC|MGu+Wo-hnjgU7C>`@7BV)uX zqRE>ua0RHYeW8NHqb;Ngv$uB#=JAw`AmBH^awiNH`OP zU@~yp)-}&Budn2>tMNj0jh!xrGRQL>Gf?|?6fYZ3ME(M5rXnb3jF=mf?y?hYgy}eu zYxMo*M3I~Kwc*zyvM-Has$cpy&YS_hZ>m`LaE|q;bJ0k#(Lv!;UCpGE%f26B%JF~9 zr~j9mG{Zo0k_T*4c2WRkrbY-NrmUDMhrir()%b}WMTd5Q3>ES8+V=~`JGWfO#pSJL zNHxH3R}prAXq}&1@0>tc06o)Ofcslt{<+MbWJiIL^s55+gwRLpNJhw91dtIT?>0w|KQ-?zodJg;O zrlls!fJ2r^Mc-GfG)GU!7+`HZv_Q3#*D{}M@7Y`{X#z+9SA&q zRH5l}U*((P)D?f!ar={{j+uHKRS~SgvFb-gbw4F6L$cQ?p3ofc;aYLt;PaSyT^y^6 zo0E)oa6S}X?`Xl@FcJY>*4Znj^)mn7`1yQzxmYKN4HmWjNROW)Yu&PQA%S8mHbM;y z^4)&DK+66@D~febU+*@wZ~EefUB^0_#kAkaGAd%SL*PT5v$Pr}uUccsB93&aP#-XU zI#I)3yKa&w3YA+Gar>|yy>NQfH-I`Fbv+}5bhQ0DYhB8OmPYKvG&jn6qa@0Jjs!*y(gGtwrozCH#Lc zX$d}k;u75qH0`@5iMQq%hSg@ccugIw8I@iP{#q=F?UO@`QFYDt)}BV=PKwN(jAZ^Z zdspB|{RSrH!rWM|j%m*Af;Q@OW%s{a;XN)-#H^5su%8Y4V0VyNcgh@;Rk^mY+C!xK zGwcX`+r8swYYt6)fNp5(g8{^M;7nATW(T?xuWDI5jh4M z(;M|SyCDuIb|bpZZs%8uuW0s3`^euC(`#bp*7wYwpfx{mKXC97sK6R9<5o#Y2}S3e z1j&iklTR_@R&}3GY}d&6T!M6-aE3JL3Fo@MarG}(8r(jVb1#Vb8hO$SX|NwpRv4cj z^SQis?GgSGzsA>_B0b795^7zVDDwZD%KdLPKfPN~=DTjFM_ADes@^F}901w#OH$H9 zCc1-h_5>ibbN&!LZL-N%V_<7)oCb(fX)VsLZ*(Q(+}>Dg=Z;))d=`I(VfF(4a<;|- zAT)(X8UB4sV5Ft2|1eAgsiA_eTFHl6Aguos&T!*IML@hDp>WcGRNZ@vTEz15a>G9} zKWTx9hpB)QQ#GYz@-^2}muLQMU6*K^-F5YEO92)W5bU11V&dYayy&S)>OSVDf0&XW z6w(9BobTg{i#AbVBZ1UVFI-5QGF}FquSNCz-p54V$P(Ohbq*NjhC$9-oQBI>4Uvp; z&S+KdtS`DW6V~g&5rohC&-v*e-ZnxZ?fq+kQGmj%KNhWjz zbEEZ3ymq?vTuzdva+m!PB2r@4gc z?zJ2;fiRI*R#rLzo^aSfEDchz(*W&#jQpmH$>9-ReeF1AII3MV`z8AVAg^9daHcdK z#V&DD@;_2kXB51*EqtF>KRCCw^U&c*47_f9WB)Dy8@C*%yafa_>_I{KGnH?z6h?9;mPh#bj9g<)6)8ghv=&E$tDJrk!fv zBObU`Z$|{wQ})f=Nj&vxf53aVy5V_dcjdKDd^13@{yP!Gj7l(B!>*`v`AN711H)qI zqx4ZRiQCWDh3f6i3_H*3EF+|jW&lF##%TR&?WZDOQ1*zyOjnk0+Z5rI3$x&TjaWdGPwgp9A|! z=9owofOiLw$cQPVt>6)!UUYvK3^Hhyubx^W8_#IGxFpyrNuRAd&7Hvf+TK-6ZH$&U z;?Vd(DHZ!s0nd!QqPwz>>ceX;r*(+h^uneVZ1>}k&xJXLb3tvCU2TOs3X$T<<=g85 zO}Uf0>U@fneL&y6Vg`OmExDrlm3Sb!20qk zM%Fc@VWl@+_EUIRoUHE+4sP1{94@K{7GlccrpAil=3Es_Co6EfFIg@4Xiq`e(-awj`I@A-Y{-edxDNjK$tL!9K zBTV4_O5v$fKI{CvMtdB!uFtN&{z{m<+RDsYcf|3;abG;M>;?IQ0>3ogdk$sZb^Cph zQL8&S*7qN>PK!+II*LgMCHC(&S=D@W*Y;w%em+}=$W;=al2o&Ym=x`%lT*oKSW>;y zAlFhOgLr5|?}U}aIwuAkhMX`HmW`~7OBpOufTULX?t?uoW3A1C@8bU2Z>f=oO^O44 z_nKiK}IBDy7fHWTbC=&5b+MEbBf}Q>LQvAGR?8WcmKrM5`6k)hYbrAA;{Z zLflVGkZi}jn1RWPn2Ehw9ZVStt8Lxq{;i%qQG72l2kd{*p1J>Rg2%>=paBMECxwVu zA9*}}x#nU^EucybtNHW$u61O&B38i%^ue}$f3Zlnr~={Qnn9Pk5-dZ)z#f_yPt`iF zMYHYIpyK;v_i9-=fH#T}n{r@we)w$CekZY4!$V7T519}u0+!Nf;g&iXM!k7c_(2R( zS;XcsJsw$Hl&|R9(h>zT7S2^2as3c>+YsL*s0_3h_w^9|&j7*y>+S0~-2*@jCO9Rq znh%0^_HOU`ctX5o7f%wAXfh4F(?~4EGYA+;tT!hc7A#oo$c5?O~FRdeKdCm^yc{UqAoi7*$z0z zK}9E5P+%4yeZP0@0b>vNeuQMO50^_uMST91nhP*;t#;3&gvx4<7X#1@+jc@QcBky( zxBYQNG%ju;oqDOof+nZ#<&+`^DLb`&EqNUFIlHZVTNn5TS`Ka|0U^@4#8?Vsc?eW* z@C6pObg?+X12xZ;l@unzEMsVNGHrEJnLo)PKx+@a>m>iz_uzz)Fv$POC$ zu=$X0{W1XTgQC;T8EZg`k9ut4((rc(n4gmaAVE?JB>0cOcNS>6O#p!*s?A@2T*LL+ z=o;wvufk9?cg(dqRd2MlC0@oqlr#m6f}XGQ)VR&Fcs3O%&G8_B$zs=``BP+JsQ;6I&z}`^;+JN{EYl9dmJzzYwgLK*ay3Q=_|fry zAOpuAyDRJT0cNcELjLgB#f_BQ537${X9^?i;NN?7ANKwTAVqLvPfJ2V{*x>pAvn-S z;Cx3;;wGr#^qljymFwBZ_u2o?Oz(e-m7*L#*!Q%Yn3}r4QvCIGi;gWl$a2Oy%yWN6p}WEsVzsaOIF07Z^by|)QVZ4eKB0=00$%5UsAP8|m~Wog=HV~!RC z45&<)G2KyjV!iqn< zAn*k*3i-^54@gaP7w3>)V6iVT@YSnqJ{Wmos`yfP|T$lS0N!1=`c{uK)gptU8>?jB7# zOqIr1%iYL}&KU#q`^-QmxENL&U1Sjou>cHRveUp+F4N6d)4fGJV;(+N3s=*a2w7tph1F<1Lpv1?zY)G<|@ z2Gl|j)x$D>5BmUW7fbGcsj(hKccb&#C$1o*3rKpfy_yOHa{+JovmeiQ~GeZx+Pr2{Yv zWh1eYIs2rGE1lDEH9A4iJ3VL>UnM{&EZ6(;_HK@-mI>g{R1PDXXP$+k9L;i@7fbDJ zm2J|ZTnX}N;zT5==}VM6_q;=rmW`Pm6A1R}ke1TOzKwiD;cae3Ebg|m{lfK3*Y-;` zx8dfeFJg_5$vPG3E}&}D@$gl{Qjl1*aQ`uT)9vnha~u_(Xa*HYYP46Cw|PdyC9g4i zoMSlw%=SVWnH`pTU4c3JY4@2)Hx2=6O+RR*!mU<%e~R{5dvSG7e}5S8T^DHfD3*^h zI2k4zb>DLUi`d|9TLL#vfsQBqe|S*wn(^cFBL+?q_;-G4UVdfx7Z7ycm^TZ`qlS$LCtu zE%7b-@v#+)4Y?XZyzq=h4CQjkUoKGL8+-c3m(QIW7qPK(ak^6afIsfn%8Ad}emi{q z`K3IoC-#(5U(nv(@j9jrUP?ss%4sLdSS5RL??|>gijcdCHjyDRuN%h>PTWmQ$UUC@ zbvOwcKx!Gwn7hFYv>a6}+xEI(9)9_3rVU6?uSC&uC%_xoNAYVYdN!s{`gK_}O`y=0rOGg8h-hmIco z9I(ple8x|kf5iy=1rmQ1ri(i~G96l)B49nDlOEUwG2;5wYRArqj772xbtGl_t}N0` zCl;!Z-#gb~ZY?Z+X+pXYvo5mD8qsy0f@$r^&!Ssx)iwoyNi1ut^g9kgS@@L8F?1rG zr8s|(O^zxxVa(D(2hR?!u~+xMr>1Ib+ivDdrC(oTxO;iEB?P(2Ol7BC9sg?VIXL!3 zRQNLyvwLChXYbo|>f%(;~S2rH=O)O8fD*i?zd4}axn}#-#nL2~z^jc$}RFNR9 z$OQFW>Gg0m7@5z?bDoHlrrO0b(dqEI)m{7seQq(r@vE5bHE3*WtXTxh_25CkS_62q zlwLzLk>_{xXnFYDaDK{cf{ItKGqXXmzfu_|jZymc*FM}#mGh$(tDJV=$?<)}Z(Kil zNIyG)B`InW;k$9vyR3l_dL?Zd+GsS?au=w{lUwp+9y;Qjd#wzp zVmY6;|3Fu?JyP&3l45YwX6LIlnFW#Xc6U zyl8802XdElHwz&#OwXH`YMTGCUpzH7L*scOn%ERAhieNJotq9yT(fC@OwiVzRV7wG~iO>nl zv`8x=o>2#3kXND}(`6nU@+&)`!6|DjQyw&RU3N{`eR7U{S{X>L- zLXLrlLsL!hEV(imkL0mudtNY*2AeSQr{F7_cf>@9X7Hn!G044g+Emq1{6;&biUkF*-l^)HbB?$42v!!Cum)-gJ=2v4t)aV1H36IB8 zh*}#Xc6O0+Vz?1C=e*x;ZGN;y{51aAko(@Ba@P9sNRa3zI3d)}ZD;RL zEo_%8_VC8c{>1VEe@E2JcNEK*?^bzI&!J} zJA)J^`Li}sc!c>~XxMK?{B#5xqr%r+nu~Kxj7g4Zkj1pwyv3a#_kY+iqK5$K2iz4p zSo#{c1gsr7kRgxV2=9_|R6A$wU@s{nLR3t===!}(mPz+we^twb`cm(v7Ka~picS%q zFj1^9<4j2kct{d7{++Y^=}@gPrZf5Xy;-O6a}0N1i30y5;Nmkih{?LHRNpv=^>PQ@ zJzCsZn0mo;^cyGTzu!X~{>$GDXkoQqwpE@$6!17S;mXdxg!d20Q=07CPog62PUiD; zfeDRC#(^vYI9hQ7RKt^Wd4o#x5F~~=S_bxWswQ2Ny#rOqWA|Z9*;!?4ryBc={d(x3 z@o5ELh;F?B(30W9x96Yk8$Cj&Nh*hFxb9@viN8Qtbo_4|6F!3pF-7j(liZnqOM;2O z%Xa^q^?IIubYOS;ZZxpYnfKw&AgryIIv?wH31} z)D5IkSqlr%UQ`~EekP|MkK~@re2F3|p!FB;LuKq!!Z!0F_KID~T+ zFyNFL-WH&pz>$;%+n-7;zkq$wjyLo@mUr~}X-?<8e=j>M8&dBObdl1N9b%X6q4%=w zOCx(%RD{vTms8nvU4+$2hO8=+dWcmfuNBI4U?vk8@TOQ-_9TA*zn9gxV8A{4h`?rF-vWR^o{4%TG2OznHbump) zrIbEApy=Baa_ElS(8-|l;oAuM0UEk|vN&B}h2{*r0OTr+QIU7zM_J)K2Zv|^VDzjw zhmb$gFa3{ehl~6#-8mx>Jd9F(s-Kv#n77F;u1q>_`pj z!>Gu^ju=*Fy15~{{_;irgJvDXp<3`crO;R4he+U|SBldZ9$o&LfqlI>w3MLMj*D@# znw=+`_rwyF6nz#4@Og}Ib@+j$(iEqY>(GnCHEdv+`n^mOThAw>;Of(-SB^vW2jJq` z67zE&+R98+j@|Tyazl47t32nZ?;#u<6q2Z-@{QA&be3 zaOS54pR+yv@~b9wbYiu7e*$M92;8xjGKsixzW7V#q?x2Frx2#{ zRzLdd&AlO6!IecyoDa>f!gRNx;Anr~zkJoB%tZC>#;UM=n7>-uRl@>s#}mxp^L!?b z0u{HpyB!$r{6*T%Hd~x~80+DYcdYg3xm~dv*kMKpsf$ZqooH^y!#=AJs9y}}ul5%Q zTN>QQMG7*1@%w1C?K9kL%NHLG9=SFxqGvMn=Ez}_?LSwuWisCB2bgz9tWJhW^O3y< z*eyM>;B%Y@rS=#Lp?>_2HWIh055@#&c~s zC4hjd>31_+N?x1Zbj9^I!*C~Bzw(hcrN-AhrD7;PVM!&yIL1OBN?kxl*D*+<<}EdC+tJ4 z%rYvOSl35L^ddMyH}!ZL^6=2l&imvR0cT8SC+mKlRoA1Ks^hpiF*E;&c&_vOzRzeB zF7Ne3HEJKd-lm7*QuFIvPGrwCNe;w*{B8T{GA=L^s#TPepvWk|_ z!cXKGGm<_PgJJjJG|-f>Dm1rM#E;`nt%=%4dcPv=0^cI# z^$N;+QV>Tem=P3Ee8!W;tV8qr0yp*yU}TVoM0abW{b*=A$olZ z?%DiWa$!Q%mr7^M^B*%ct#(i73JmKhAN3xe%9r0oH6C5r zl=S_^3toiii9A)G(o`-H#(^N80p3oY_{+5~YI|-QA{!HLz_M->Ms$tmd70eEU#ha9 z2A^uf&)WhUto94$Vf21g+6oQVKUM9*_U+ZGVe_9!iN%lbO@-+SLg0T2zG4CI#cy zhj25fM$bK^8mWj&VXUSbNf=d=CUq-wWUor#P10CQj~wK%pJ1rMCU*Cw+H$%I5!wB< z^aJgP4)Dy?1hu90Mg=c4;W3wbBh=U|F_>U<5ts!<{oP4-vhFDh}JZ~0m(J*viV zDsnGbsYjD~X|la|U27P4&P6AI%7UlwR)DrbC2vt~>wXwwQti|)+!r`0!7cAp3R^qw zR+Ev`Z0Gm9kAcj`GQOZmJ?5ca^gCW(dagV71oS{@w`#n6vQ}$~aHzV6Zx^t0+qN9l z6c;=B@Nv*S)aQb-CTi!V7Qf*Q3ARTH9TZd%(fJjP`4snQpR zR?^$k_{FE22V%U`y`c&{!%8g_eeSh6?)K;U`_tRNycrz>qwlL-K6ws|0 z&lLZo1wiVYY4Bb`cPgVliFdbZ1MAICu-Q)Q7@^hh&2&Du<0G4&rW-qQ|NoDy`Bz1F z5f}PZ#41O6olxg^;n;KA%J*~;*Qn)Qt@s${S7_o7vVWUIFr7gj;W_SeIqfCJ?OBP_ z8{vZkr~;=cYrB-gEE->@I!_g!7QeA{Nc3c0{qYxF0bS;4fu3JuF*i(1V2O|o_+bW{ z5iR^S^t;>fu>32bb~8u{8-KxT>X4daNpb|3k}o}d;xIr8|e9=&V*u5=|_WIE)C_CdD< zZY4@S#8~j{7;r{zjM@y z6iuxmM9AGoqKy%KR87At@{*IM662C{T zI2kcxqD>#Sk$rJh^uN@u*pFWiQmD-qweRhM^KrdgW2*=2^Pq)+<^67TKXdybyt{T z%UA0Lg%(us<351O3E`~P6{ryjcV>3^PR0LJQ5hi~8tif(R8Vl1=k)!207@me&f0t; zTod6X9NdsJf|qOx&6?$*DYYweGdJygXr0^$7(^fNI`n54k(@zdtGB zU-|gxPlNBD>J(gv??+lYsTe*6odlG~-1=Z=bBbQ>ay%`|=sOc8-`UxniQV?)4(_c! z4ML9qn_0>)+aGb+-_o7!2@7F{Iqx=SBXnggT)AZ$;DOEc1ezq`A3MW=I9^f zd`<&T7Jmli;}Pg?8W2FZSupCt#ib%eqYtGUX@!NAr?gVdUxbg7PgbS3H%k(W`3Lk= z?scY*7q1smd7YcxHG8&Vi=U~Q{JHZdVmI$nC#@v(+uR3;dnX5gB^Z3y0)j-NtcRYt3t_)${u2PR(vjV7A-xmw8*bdD#oj}Kh5LgU}5$B`B}}}S$Rr+7Xrn9nMauM7k%0Z zx@Ss-{Eac84ZdqR-`nG-^VDxG0d%M-e8Rik1?{}`ZvB0~Y$bI>-l<~C zYjS0@YW`GM=J&w}qDJZq7**i~5W7u6*B#=VW(*L3SkT*K8r3#)xR$o1wkH>XF6E!v z257b(3`p_h>}}^|=*FoDLN$ln3nJvdY^}# zJBV4d8jmiDVu4xG(V}Y4a(S2MnSWO7p`I2&I6eM5$PYmcCOFA~Stb0HPn@fC2V%Vq zra~{jbhcOy2?@LN=Sw55VpJ3}uV!Z%E(olTzXbI_A=p-r1vo69BZG2yj6pDrp${L2 zPM;M%c8>!o=7`|LaZ9kQ$~f3py|l}>k&@)i<-rRb;lf#mo*g#(0{b)20Ewj=uz|=#_71zPocI zYl<8bMOw!lzH$?5)J1D(OR0|I5d>f4-+BcSGz&f*?(80u|D%-;hJ8&D z5M0i;5OjV#q55znTUEYJLAFHYHR`-Jl-T8zJM6!+%{PpTJeU?c>sO)bs7?;^?l5#* zrK(Csl_z>q7HzxP;4XX%rPyzll12?h396PrG@I3HMRqn(oudy!tw{(_1eB5_bzFA@ zofbbK%VI&1J!y-2Pnw9w>$dBAIgtKcZ|n~Q-2?!6+7*fo{OjRZt^SdsMlFEMCMPVG+Vh^wT+9kcXcuEY3ho@FrjXyxyp&W z7J@YjI?Ug}W&UQYyEHwq%Wkh$P(JzC6=|{C^IIBhefHX(qN%YJ{qmZe-1fr5?{gJ@yCd`a~D^Jue zDa7Ue>*n1q6942dkbLpI;0z==!Tlq4dEeM=okw3ZpXfGu4GzalSzhLmQhXvjrf%;y z6U!aCTQY2Z_71zfy&L;aX(v=X86r_V*e`T^z1=pFw&KuPf8jkcgiHeu75^&aUPt!XYJ(Y%?0$Mp;!XJ+sb=Bx9xI$3riLNzYs+voGZj_#X}37I8`5Porx^G+(io=aK(8_Fw|@ z0gkFlB}CFgy0DUv4_k1a{T#nx3IuW!@)o;W8Gk;-WehGw&X=2IBl=NyP^MG8@{L0M zxmIKT^snw&57di?`o5``QEENk#w`Efw5BRVk@G=+ngl9-YJ@`e=|fpo(zal|7&kqe zu%M4}$Tn{6Js*&Y`VkV+A8#~nIrL-S`IyeeMsJd5)sw7FQOw6Usou}l{h6LVg#&(Y z2O4O!L@%$l%iA2?k2R%=1Uh+l@jf}Bf-;a9-7N?k}&syp_6z?FU{o%9!CH?lN*WPzPPx1*E3Nuk!Kz#iV8 zqUQ2LgU0c!ug-+0i%-<@;%`JeA%Ti{jd@1K%L`uoQNNYU1n+INi5J|3M%WX7p3`*S zU-^AK)vdwu2-&#H`>~=iw8B>N-EPs9I<;IA#}(nH;ClnNquhE&uBoy?g}aJlf*S>r zQuMWin`eKJnyn6Sn16zUdhtZR++x&gCsQnA$K4vUmP*NC&HZ(q|Os#Oup>~TUB?&CoeW{Y4BY7Rx9=dlqi@A53 znj>2c?tF=SARU6QmHXc59mlneaGr0m6NLUPQheP)Nkk`9f}1dWQTTDm@$%D~uDaRW z$g`~&E)}sUof_AWIl=Ou$5tu5T6u=rZ!&g;A!+#Tv-8dE-EGW6r1jO6(m8~B*v3FDCeOq$ns~y}**xJI0<+U7 z_~q;F`+l4!Tl){0aH#(=M9a-=<a7Dga;0N}8ZzIV(%QS7La8du&HbVxVMJ3Yku;ZSvFbFw zihfD@YhpuHO}<#p2g=A#q}q>n=D*pT8SVRaa0Q11DRxv7u>#5J1~AcnojT5&dYyl% z77W@eM7{Z+|IA0jKDiPHanvOl|}I+eyD8=yHP-qiGl-LE%F*LYJhkV+O%#)T6=9WNgxko z31{t;Jyco2w%oZLt#Z5Awfb~YHA6U%P8nNbY{GJS!mb~g82Y|75?p$*S>#wr@g6TIcRvGd zb(t2fIhYNb6PC9LA&Xv1*r+N-cIi4xd|r z$yZ5nln1NUI)N=_K0wX6ca_re2N>0*lF*?&OS#N*5ik**98CebKhkKn&rKcU#5aF9 zX6p(}J2(&^b9DaxcBsNkJ4Xg)U+hXnNYm8T2j4~B0}$;#+*)2h1IF@6;mVAiCtKrc zA?kz*ijU=e)l`kIHy@5gKJ;?0wea&QKD6FuK<68V1@Zuh?oJDT1Fet?Fs5sf_Tmy9 zac9H>poUOuDQjg+>=$~o!mN%0ciEDcEA#Io5#SXSiTin(tQzP6mua1ro}m41l5p8h+dSBnxUG`>V3S=w zNF|uWPM{*9vmQL%ow?9{49AZBaLk1#C-QJi{oVo_$~af0l}H=1z1EHtY#vfDHc~3h zjA=4Wljtoclg2N1J%TsoEZ+f|BQI*KXg(dU!^Aq1@TmQv=x?F;MD86FLJzCR)Z1pBtVYc9>}Nf!c2(a0rq@X%O2DCIcwqB$t7Mmy z(H(WzPRQJ&IHF^~^v|AT;hS3qEuljnowF=bKA|JtUGzVR2yp?K5YO$Rx$CxcxBVN- zaFRR^w_X3sGK*;KZyo$23J~_0X(dx!V;oeOM}>`d(5C;myIw^ZcTM`{k0n4UoU45z z+HjE`x$`>d588CHj@1+H!Ad8h)+cC>Xn!AodV4VKbGiD}T_y`wZ@%^1Z)&C0YC7)I zZ4?DGUh4|qyX0GMOB9 z4M+fDZ9w0&&}M51duyvMHQr{Pmg5{_V?4^jLviwT#~xjw+^tfx!mhV?=ty?~jL!HZ z?p>ME$N5$v@J-V9RZXX@B+}Uc1a`d_9(~1ZKee(%-kU5)h3@{iaJ%aU9JtsF;(ukx>x zN24n?+IxGLT`j>v?qOHYPptasTCSAQ^$pM8paWIbbgb2BqGhAN7)^#z+@Bp18{vKX zm{1S+3n&O9O2rrxlQquDYdVL3Y}+r#AD{S z+r&ER$0D(q7XP2PQeXa0%UpzxnO@9O(nEl{_kiu&%8_s3k-G@j$oI3Yz7d>f(*qRBw& zI9mcbVo%za5|&U`^mERL_9}n9*R1~1rG(0N-puE6fF8h@BtM($1EjIKd3qXb=ClvZ zBYs&)^QdhPybY-vULzRiem(rYXww-`3b{BRPHkAeEH}>F_6wxG--4s-Ms$$K2yFjFlNOX z8qjv1KjIcZw$ccM3*x70bax)h-h5#Y6^45q9ZUbpU4dFJd*9cCEb6}38!`DzTlH5% zm}OM^wpqb73=Q+9m&LC#bT}mm#5BG4WXsR5nzex81Cd#2WFe(49;$Hwc5QnXvoD_y z9*d-6hWeAIs&$$Z*Wd3yt9$tvd5c7y2JQkK`F!|mfI<_mxJ)T*OGQnrp5v{YWkdxp z9(9*5pcfHX*!)waKrWvdGwuP>nMopH0RFa@I6#>iM?%HKMj zJ?pYy#tg3M7~aGfo!A51ne)1n7^=0X9X*(vf<8K9bPv-`yQ6jREY9V!@0b<^@TpJR zepnhyenm7SSK=nN|NJ%>hmpTv1J;jfn3w8yb#QTGYt$v3i|x!=?D+*cPxjY^f+rBc z{IPGd-|p5AHy@v8&`CJ72@5Q$)$!PvIAnmx!K!dp>&jka35B+8(&>a<#7E zMbA8kVvW^VC5tK{10_eqj4n_<0D+9|st-(Sc;43mRH<%dS|I(@utZVctnO$12HCJO zV|SzMYc0+=rt_TZ!#qG3`(-P!_;g+Hi(b03>Odys65c-T-itnZ@V8X>4x~_uMwGX| zGRwloir!51#`l{*d_OBw_t{%+Wftb<8^f2gr?Y|$em)cINf{{hS1NEVPC}xI^dhW)EThgs#)z%y?$Ec&;aC!)ySlIhazaE)?R;`_;nJ5oL>aLkoydefMD2lHAK=FL}B4r|DuAlo6@F zwFYroVSMTNime?pBYTHl*75z7(qEAM z*kK?{g7^Nz&*GT;mr)teQbRVR-wFsaya60z_ZoztXP8s1yJ8dQX{}(8^k3o#b3p0V7dnVh=&v`hTy?(ffnRX*AV1$ zw=>dT0@Q=ICY%Sm1-s;!O?Ut9(sm*xo6sb88_9Nz5i1#+*NPQocjr;_m&j0uF^L)T zCfD;LvQRG1*9|^ydLxtXdx}4}j{eys*V2RQlsP0e4Wd_+LTJ4P-J}3_9U<7Y^}|zhLQ94vc+9tYNy|6R>%Cs;3(C-a81cC-7}aN zM(Qu!yD0WVe0eV2Lo_8SM5rk!lT{CyG!i0D-QsC0QS-^hSSs=9wUC147D@q{_w8D7 zy8qDv=&o|x@)uZ1jji7uh?IhwPN#k)AI^&$QFN`@IV@1k93Z;x+dJH1y6Dua*12|{ zm9B9}#OsmF;OiapiF1=^B=`oW2uB5C6w44jbk=0pdY@<2Vk#9NDgjJhkt#ujbhKcY zA>Q!-CFvMwhm@Z_Z0Sk%;=PD4;~lC1+7r;biPXTB%qXqe>{kQ0C}+MUGp;dYT%>31 z^Aa8wvnKeRo#khn9mFl!SBNL_9<4m7caE>|{W`zpCbwErV`{wLkNX?_#vgn}3y*@> zIU7g!g;ZpveZts%6YHqwC&F9*{n78sZ>F$)F0u3}-wiKMqqRN%9?HKM`}_MmOIKv$ zwOq7c1|rS#M_26YY)UUU#D4e8>OxT{v$YZ?TPOoduY2EsOXCki=gv$>1w$c(i>&0I zsR|)3u6z!&i|Aqg$fK&A%hOyiK>pZjI)v6mDuX;<{V`Y2NWFG`SX4s+(fV;UeTEWU zF@oTzbgSOm+f#6fO)KEZ{i@tMFxF2KJ!uCqwIUJPxX{xtWt|23v7g71@%2GMl|Q>_qJ`r6Q;!2rc9{`AMNIdyQD<) zW+u2?2;L32kqIglV0LJ_-`CdecY(L%7@)k7WunNto)iI?WX^3g}*Tz{^7Js5P9($OPP(@YBK4E!tE2iSTf{B;27hi3})pxl}V9RrAN4$aDXJ2O5a zAbDohR_iv7rK=cniua(5X~HPIaMyo(nf=W?96!p8ip=!W8yPC!y|3Pe%2u9K_uAlo zw_dr9##q&dx<5{A1eK;QoFvKk7#D9;P4T2u$W>M?6^Ue?rHP9?^^D(Om3Ni7&jEb3 z+Rxf+#5;A!x~&%x)>fK3<;MJ5c}~BhN_@vsF}{<;?Zi#h3rx5t>N$JD&*dk&8drCt z`BY0fGEmalM^~KX=Z?jbo0<0D_2Wt0qej6v5N) zQdxErr442ay=I^fQ7`f>kl@)3BQZ;mH=Tnv<-367t9DjN&uV~g~yE!QN) z4R~rd?EdWf4pqYD%z*2b(DQ4ZYy1hrgN0Oe9nl|CHRbB}-XWj&117vLkOB)Qt0!)| zs@$T#&)S-9yYv7oyrd?-)T;h{NZ;48UaEkH za^n@})AL_+5^ZYEfWh!Q=}MIKHMmtkI#d$IMmEUk&&8=?f!3+_D3oG2wY2GE<1D;E zZ@r|5^lt)0r9G-IE#TDccS4SYGSb2NJE1~A@9@f2q@e5(t#E^E<=EZ*BP`AJoYo%2 zh`pljHzJa$rm`Oq^!sRF{V-t0GWfqo$|Oou)qv|rAwf`z+4I zCn`orN-)Pw=aAbs%Q(vDI+;Z-zM+wA7B7$*RdX;e^S+4Xxq26}6x5%@U2XwT zEGlKe4h-%;`F@`66>&MAgIjEv80yUMN4?)JGIuKF$Y_Rul}v_7t$6=>_jkBvrMGk& z8|Ka!uHM)i(>H-lx)7qz6geWEDhyg^hmn21KOEgF*The}%Vl8gl^EWJEIPRbX=K)a z1s$o)`dp=SJlc0&%H8E>ky_1N;JNXn_1YtsuBjc{i!w1}ir{Z|+fbF8!uP8EzI8B34ii;Yk2ZA@;840S)NVAG;<<*nTjy#ycSe9PsybG;T-Z!1>lt$Bob)7 z;63YF3UXFzy&_TN0~z7>lqHQA;wf-6In_&o*UPCuI5!lTI^vq;0f-|ZgSsG4^Ga;< z;_8s6(>&22V}6-P=%g~%ilZMo_xs%ZR>p9NiS~kh63F}0(({E&vV0(z{V#!tbtNdLW|Zwb zN>t0RCK~;(8^lQ7E=h{#n>QZ~E%Kfp5OtuxU!b^)pGLx=#i@Ngcs%(s@8Cxo`NMYe z>)lN*GX$oSM&6o8vb?aA1>~z%TXT6=aUY99@IHlv_8#}(s0FMANyZs;4b&W)Wgq<= zIpO<5?%U8~S#GAWw@-TBUyqFY%NxEWltR4jbGYZzR^=Ia;BhnH5lK8Hrn zgVc$_o}*yaroq5){AB0CeHDm%cmVF;8<%__p(Y`Eqo_W0!)KS~^WqfSTT;-~?J{vC;h6FAnMfZKc|C{NX#D3lurIuY zHjU3RT@-n5yHj1`T@L>c6H3V~zwW64Xa0fd4=2nYc@cnEo}uGqEs!Y;{B%1~QI8gJ zlTo;GtQxizfuFgcx1e?rvs^$JNYxVJkbp@j3{w$)*!wf`9@X=)jZ)BuT3!&$jI(4n z1UfZousXL!^ZNNg&1C5Gx8l6*p8H8kjqWE_=WYm#oRHVJ$(H@)tv?yw*L=b%(A{z$ zADJ@q_oqPJ&^Rpo%EC%!T}rC^ac^mm$g^vd4!rE*XkTj`Kn3F>uUr4{rOL9_i5d9+ zqHVIK*q2RY9crPxYXdwqJlGW(c%F@f+sB{iSvq-pSr>kMqxw_!1Ejc;Nvq_}r)>m|;@0Lr+?xH0y#W z7ZO<1pL_q%t*VPUt57&zaF*@S06Gs%?US%#r;Tf@yRyj-_&w78s9zq9Yshdou2DI8GfzbdW5(`YdNjaqRUb5zEiE4Qq!pOh|C$JA$= zcN(>>+gnXn!@JHYzh;f48vyT?gV7Utu%_bnq7!9yhSOnzR%&*zruhubWVw#+ldzU)KZ$Ufq zpQLB}-pRMspxnCB{UGFe0JvMpIWf3e(5nJE@sZc_nT{nksSFf%LoLP5k zW_*oenm!86AuP=?*C;T|YAKqVEASgnMd9-{Y#!`fHA66#2-fZY*z2HCtQ7AB*nH$Y zgbx1+PF0`kY)4B;Jw77|NgB1@gJg1*xW0zNg<7-AVhsS`v>w_}SgJ5*0AAC@+Haul zZg}=#v|E|Sa`N}6FWZ!C`d1Wt9XTl~WzWe1&7Pm!h&g#8^lU)g{lDu9BvA4?>~lu} z;yGs#-0Q0b!RT(bt=~Y`nsTnIlPT#}nImQgSPw*N%C@4XXJGKqSN#%pPv9&p>ujY) z3^8t_D#HObzEen1HBAy=xE*@Lvd?O6ME)P1=`V z1$Kz0tI5fKm`8R}IrINEwQw)~_(u0l=3N0T=Rtm7u<>*-P29u?xMW@vn4;S0`>qDJEGr&p(C zHX|u}r?rlm6_fv|sOG*NdDfte1FHja?CL?keEIV3XZE4R_h1YpMhs+)NUX|onAMhU z?P`obIkUM&{T!;j3=}bE1HlR93~^H7W3I4;l^lfY;ZS-nGyGc z-J>@RuB&SkymCM=d?A`aL=fk39t8wjWvZ{c;(Un_qHTacGKls3zUeW8?oJP{{!hdN zOPeA@_8#;w4fMFjfP^FVgzp_Oh^*J!b;YMSk=PBqGnv4m>KNWWJY|2;Nm=cpL@=1^ zidM!Gyc{2^`er_M(Zt%{`Ox9o3d^OZV_zrUsE~f7Q0m)~sMzy2Ukw^%#HVjWD=&e) z3N$M697{w$cR_5Kj}fst2GyYK6)%;)g8&3{Pg7+RQk1mpq5&FnrXD~n$JeDp_5 zj!UD@K!n{p$4VKRmK6dKuQ_`j&fwbrO4*~5Fdjs(jV`h-hVei8-E=UPay#^@aA@)? zo(Ad*{qA3Rz(TypBFYvr2HqNNYe3F!-sw(lR- zTp6X6DG;mcEH9~jV-x7zzQ$C^bwSBfa412|j z`imdy$jvtvM814AF(7TX3fZ((U@$u(^KRm?n!nmlmG;5Tfz6@mC8@Dpa4QT;;ovgyd1!Fckc%2(+P^`P$ z@N`RGB2#;$oPP^N54|!SW@UI_@jYFu$7&Iaq(vNV2f>Q6Q=3^Aww)o3>2Y#ND-*dbrWX=N_u|@Vq z2JHI}AZf(r+9kF1-WT^&UVnOWsD2MF3=I{+$+|vFG(V&t=j69L6b`8bkW!bAfpH^) zgmBHf|0;!r@-P)4cR8sNi6#oS!#6;5Gn~a)l7rS6zTnodb~|q|T{B;I`S&+1g9D>2 zfh&pNnh&#;3spd2FLz~T2ZjR;g?{Ae?cFn&3!rKG@aKLVT)jsL4iCNek>{~A7AoMf z3i9VgIYfUo47?kQ>BofH`Ay~KtNA8@u+V%e;&kUF9NHn22?Ra2x>~qz#5?*AU04J_ zC)0dAe-&Yc{LGKIV*QOSiLo*2rCwKX`BG`whH;HB!7T{(b3oM`9-3&8=wQTybBq}W zkWhf5ch+HiBSVf-e`YjoEjW*wmH7Eu_4&8*d~N=3#ew2rF$lYE(@6x#_m9v&F?uuU zA05<#y+a-E>(?gB3un&OcS@qfC!`_{JF%xWhzR>`bY(PfsQl+HB!;$$4`XcbxUTC0kW21o501^c>O&5$4CUZ~xFFgeaeqPy zZqs(N+&F}KLiAwBHb8LJe7ah}RA0lsNs0w+z$nesdSf>=rN)!}0})`e51@K#oBb<7 z_5FgjsmpPa`<(rpPw&T`4l42#C^dH6ue{NJ-9oWK)1LY@OKS64xl+_!-#=T)SxD-4 zqA&i5$)bE&oiV0R%jE*aCxgUu`=V-{LzLzzaeXaeY0wzyHl*-1>x7IzSCPgNur|qn zM=0bTem`%tPz@|C`BTtQ-kw!x!2C=$su->}6%&c=t8z322di>@X}G>NliYT7+jmSJ zYhgwEiM3)|8LpFJAUpht--6DezRL#J%lmxY6uWkp%QjkhQYc`==MiGcV4ohB*!)bv z?=Y$c2N)9fQL-#Alr^@n)QXu1TaU|@9Kz2wTg&!mNmEeu4;pu1ACP#*XJL1U_W~ z9Z8Mn@JQbBG4a*^5rc*z0h{bPA9T?f0#a3BYa0ElU&~8oOXfgdOz}bj9g5H4HsE)9 zLdNM;;`Cn;bqAWnx)U4Xc1SR@`XQX8#(=V|@fn2HbFfchUNF=011C=KxJWXaMvXL| zFpm}hi5C)5|Nfzco~^z*TUt#9m1}RsTOQd34ZtiIkY_sZuAZpwI3=^dl9-szD0jwJyEO>wvHO%OS5 z%>LB10Iv!i+K-v7bC#7V) z3S-#q6+b_^Ps*Ory?9dkuFCygG2!7YBT@9x-9B+BWeos5z-@YM`c?eVfhp;Ax$M5& zuE=rK%k+C~v@(OCjE%ib%&xv?CeSre+j>L|uIFq%;|HL{*ix@q(m;oSDr9*ksJ$aq z_s-!qj?IWj$Tz!~lF2?t>W32!jS&|@jmj3t&dq;LV1f>00RDemvAD&sVw}5&OUs#2 zAQwzmZPh6c7?VoF0`}s;@XKG4I@90U)hF&SOi{LVZ=T(}W5)+kUg(-tO(uJrπe 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 literal 0 HcmV?d00001 diff --git a/data/snake_pixabay.jpg b/data/snake_pixabay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb3c337c016fbaaf5609c96ad5b53ddd803e3d73 GIT binary patch literal 77582 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

3Dc5|2SU#Yi)X|C0FC;t(EvJ5)bIs>wU9-Lf0Aa z$(|tVd9T)J^u?|J-5OVAxk0wecw4gS#U}h*2xu8BG@rVaC;8=`kG>|e4{&g@@=u1c z>0u7-_r$LnvVBvRCe7Z~H14fu(l-pL|1HRVQ14L3Qp!_t*SRB3tvrWbKV0By@RxOx zWJ5lI=)TR@n*0}1o|He;KD-n|w$tw`L^mBpcK7`?rR@gIOY_e!0`8!lWq*;}1fL7W zg+(x2Iw*hGJ9N~k_^F=*yWY{AY^MQ>axYeRjXy{%*K7d#Qnv$xY~(IGlk zG}rE*L4CVJ?yO|AfpM1VmEv1D#lPcx?R7@F6)9C?hq|}VVg-+!$z?y>^V##N01I&U>Wo3 z>nvL^wo)0~w`~Gt+QY@ZTMnoMjhuf}1+*Jp>fE2PEzvra@MqI{_F>ONTWwZZj>)g@ zeEg}_GY-kcGO@Hm^FJv=_wJBi^-HY!&#AIv1B!;cAkK1f+BCf@ok?f5X?x+dF#7F# z(Df;quEotuXI2BjeH@F$RE$3t1k1XBlPm~xZ(NyA8y|ub_vTiUVnSvpWIU~i�J% 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 QZzt#-G!i?_`0xAw0k~}%<^TWy literal 0 HcmV?d00001 diff --git a/scikits_image_logo.py b/scikits_image_logo.py new file mode 100644 index 00000000..9b6465c1 --- /dev/null +++ b/scikits_image_logo.py @@ -0,0 +1,225 @@ +""" +Script to draw scikits.image logo using Scipy logo as stencil. The easiest +starting point is the `plot_colorized_logo`; the "if-main" demonstrates its use. + +Original snake image from pixabay [1]_ + +.. [1] http://pixabay.com/en/snake-green-toxic-close-yellow-3237/ +""" +import numpy as np +import matplotlib.pyplot as plt +import scipy.misc + +import scikits.image.io as imgio +import scikits.image.filter as imfilt + +import scipy_logo + + +# Utility functions +# ================= + +def get_edges(img): + edge = np.empty(img.shape) + if len(img.shape) == 3: + for i in range(3): + edge[:, :, i] = imfilt.sobel(img[:, :, i]) + else: + edge = imfilt.sobel(img) + edge = rescale_intensity(edge) + return edge + +def rescale_intensity(img): + i_range = float(img.max() - img.min()) + img = (img - img.min()) / i_range * 255 + return np.uint8(img) + +def colorize(img, color, whiten=False): + """Return colorized image from gray scale image + + Parameters + ---------- + img : N x M array + grayscale image + color : length-3 sequence of floats + RGB color spec. Float values should be between 0 and 1. + whiten : bool + If True, a color value less than 1 increases the image intensity. + """ + color = np.asarray(color)[np.newaxis, np.newaxis, :] + img = img[:, :, np.newaxis] + if whiten: + # truncate and stretch intensity range to enhance contrast + img = np.clip(img, 80, 255) + img = rescale_intensity(img) + return np.uint8(color * (255 - img) + img) + else: + return np.uint8(img * color) + + +def prepare_axes(ax): + plt.sca(ax) + ax.xaxis.set_visible(False) + ax.yaxis.set_visible(False) + for spine in ax.spines.itervalues(): + spine.set_visible(False) + + +_rgb_stack = np.ones((1, 1, 3), dtype=bool) +def gray2rgb(arr): + """Return RGB image from a grayscale image. + + Expand h x w image to h x w x 3 image where color channels are simply copies + of the grayscale image. + """ + return arr[:, :, np.newaxis] * _rgb_stack + + +# Logo generating classes +# ======================= + +class LogoBase(object): + + def __init__(self): + self.logo = scipy_logo.ScipyLogo(radius=self.radius) + self.mask_1 = self.logo.get_mask(self.img.shape, 'upper left') + self.mask_2 = self.logo.get_mask(self.img.shape, 'lower right') + self.edges = get_edges(self.img) + # truncate and stretch intensity range to enhance contrast + self.edges = np.clip(self.edges, 0, 100) + self.edges = rescale_intensity(self.edges) + + + def _crop_image(self, img): + w = 2 * self.radius + x, y = self.origin + return img[y:y+w, x:x+w] + + def get_canvas(self): + return 255 * np.ones(self.img.shape, dtype=np.uint8) + + def plot_curve(self, **kwargs): + self.logo.plot_snake_curve(**kwargs) + + +class SnakeLogo(LogoBase): + + def __init__(self): + self.radius = 250 + self.origin = (420, 0) + img = imgio.imread('data/snake_pixabay.jpg') + self.img = self._crop_image(img) + LogoBase.__init__(self) + + +snake_color = SnakeLogo() +snake = SnakeLogo() +# turn RGB image into gray image +snake.img = np.mean(snake.img, axis=2) +snake.edges = np.mean(snake.edges, axis=2) + + +class LenaLogo(LogoBase): + + def __init__(self): + self.radius = 180 + self.origin = (120, 120) + self.img = self._crop_image(scipy.misc.lena()) + LogoBase.__init__(self) + +lena = LenaLogo() + + +# Demo plotting functions +# ======================= + +def plot_colorized_logo(logo, color, edges='light', switch=False, whiten=False): + """Convenience function to plot artificially colored logo. + + Parameters + ---------- + logo : subclass of LogoBase + color : length-3 sequence of floats + RGB color spec. Float values should be between 0 and 1. + edges : {'light'|'dark'} + Specifies whether Sobel edges are drawn light or dark + switch : bool + If False, the image is drawn on the southeast half of the Scipy curve + and the edge image is drawn on northwest half. + whiten : bool + If True, a color value less than 1 increases the image intensity. + """ + if not hasattr(color[0], '__iter__'): + color = [color] * 2 + if not hasattr(whiten, '__iter__'): + whiten = [whiten] * 2 + img = gray2rgb(logo.get_canvas()) + mask_img = gray2rgb(logo.mask_2) + mask_edge = gray2rgb(logo.mask_1) + if switch: + mask_img, mask_edge = mask_edge, mask_img + if edges == 'dark': + lg_edge = colorize(255 - logo.edges, color[0], whiten=whiten[0]) + else: + lg_edge = colorize(logo.edges, color[0], whiten=whiten[0]) + lg_img = colorize(logo.img, color[1], whiten=whiten[1]) + img[mask_img] = lg_img[mask_img] + img[mask_edge] = lg_edge[mask_edge] + logo.plot_curve(lw=5, color='w') + plt.imshow(img) + + +def red_light_edges(logo, **kwargs): + plot_colorized_logo(logo, (1, 0, 0), edges='light', **kwargs) + + +def red_dark_edges(logo, **kwargs): + plot_colorized_logo(logo, (1, 0, 0), edges='dark', **kwargs) + +def blue_light_edges(logo, **kwargs): + plot_colorized_logo(logo, (0.35, 0.55, 0.85), edges='light', **kwargs) + + +def blue_dark_edges(logo, **kwargs): + plot_colorized_logo(logo, (0.35, 0.55, 0.85), edges='dark', **kwargs) + + +def green_orange_light_edges(logo, **kwargs): + colors = ((0.6, 0.8, 0.3), (1, 0.5, 0.1)) + plot_colorized_logo(logo, colors, edges='light', **kwargs) + +def green_orange_dark_edges(logo, **kwargs): + colors = ((0.6, 0.8, 0.3), (1, 0.5, 0.1)) + plot_colorized_logo(logo, colors, edges='dark', **kwargs) + + +if __name__ == '__main__': + + plotters = (red_light_edges, red_dark_edges, + blue_light_edges, blue_dark_edges, + green_orange_light_edges, green_orange_dark_edges) + f, axes_array = plt.subplots(nrows=4, ncols=len(plotters)) + for plot, ax_col in zip(plotters, axes_array.T): + prepare_axes(ax_col[0]) + plot(snake) + prepare_axes(ax_col[1]) + plot(snake, whiten=True) + + prepare_axes(ax_col[2]) + plot(lena) + prepare_axes(ax_col[3]) + plot(lena, whiten=True) + plt.tight_layout() + + f, ax = plt.subplots() + prepare_axes(ax) + green_orange_dark_edges(snake, whiten=(False, True)) + #plt.savefig('green_orange_snake.pdf', bbox_inches='tight') + + f, ax = plt.subplots() + prepare_axes(ax) + green_orange_dark_edges(lena, whiten=(False, True)) + #plt.savefig('green_orange_lena.pdf', bbox_inches='tight') + + plt.show() + diff --git a/scipy_logo.py b/scipy_logo.py new file mode 100644 index 00000000..985fe77e --- /dev/null +++ b/scipy_logo.py @@ -0,0 +1,262 @@ +""" +Code used to trace Scipy logo. +""" +import numpy as np +import matplotlib.pyplot as plt +import scikits.image.io as imgio +from scipy.misc import lena +import matplotlib.nxutils as nx + + +class SymmetricAnchorPoint(object): + """Anchor point in a parametric curve with symmetric handles + + Parameters + ---------- + pt : length-2 sequence + (x, y) coordinates of anchor point + theta : float + angle of control handle + length : float + half-length of symmetric control handle. Each control point is `length` + distance away from the anchor point. + use_degrees : bool + If True, convert input `theta` from degrees to radians. + """ + + def __init__(self, pt, theta, length, use_degrees=False): + self.pt = pt + if use_degrees: + theta = theta * np.pi / 180 + self.theta = theta + self.length = length + + def control_points(self): + """Return control points for symmetric handles + + The first point is in the direction of theta and the second is directly + opposite. For example, if `theta = 0`, then the first `p1` will be + directly to the right of the anchor point, and `p2` will be directly + to the left. + """ + theta = self.theta + offset = self.length * np.array([np.cos(theta), np.sin(theta)]) + p1 = self.pt + offset + p2 = self.pt - offset + return p1, p2 + + def __repr__(self): + v = (self.pt, self.theta * 180/np.pi, self.length) + return 'SymmetricAnchorPoint(pt={0}, theta={1}, length={2})'.format(*v) + + +def curve_from_anchor_points(pts): + """Return curve from a list of SymmetricAnchorPoints""" + assert len(pts) > 1 + bezier_pts = [] + for anchor in pts: + c1, c2 = anchor.control_points() + bezier_pts.extend([c2, anchor.pt, c1]) + # clip control points from ends + bezier_pts = bezier_pts[1:-1] + x, y = [], [] + # every third point is an anchor point + for i in range(0, len(bezier_pts)-1, 3): + xi, yi = cubic_curve(*bezier_pts[i:i+4]) + x.append(xi) + y.append(yi) + return np.hstack(x), np.hstack(y) + + +def cubic_curve(p0, p1, p2, p3, npts=20): + """Return points on a cubic Bezier curve + + Parameters + ---------- + p0, p3 : length-2 sequences + end points of curve + p1, p2 : length-2 sequences + control points of curve + npts : int + number of points to return (including end points) + + Returns + ------- + x, y : arrays + points on cubic curve + """ + t = np.linspace(0, 1, npts)[:, np.newaxis] + # cubic bezier curve from http://en.wikipedia.org/wiki/Bezier_curve + b = (1-t)**3 * p0 + 3*t*(1-t)**2 * p1 + 3*t**2*(1-t) * p2 + t**3 * p3 + x, y = b.transpose() + return x, y + + +class Circle(object): + + def __init__(self, center, radius): + self.center = center + self.radius = radius + + def point_from_angle(self, angle): + r = self.radius + # `angle` can be a scalar or 1D array: transpose twice for best results + pts = r * np.array((np.cos(angle), np.sin(angle))).T + self.center + return pts.T + + def plot(self, **kwargs): + ax = kwargs.pop('ax', plt.gca()) + fc = kwargs.pop('fc', 'none') + c = plt.Circle(self.center, self.radius, fc=fc, **kwargs) + ax.add_patch(c) + + +class ScipyLogo(object): + """Object to generate scipy logo + + Parameters + ---------- + center : length-2 array + the Scipy logo will be centered on this point. + radius : float + radius of logo + """ + + CENTER = np.array((254, 246)) + RADIUS = 252.0 + THETA_START = 2.58 + THETA_END = -0.368 + + def __init__(self, center=None, radius=None): + if center is None: + if radius is None: + center = self.CENTER + else: + center = np.array((radius, radius)) + self.center = center + if radius is None: + radius = self.RADIUS + self.radius = radius + + + # calculate end points of curve so that it lies exactly on circle + logo_circle = Circle(self.CENTER, self.RADIUS) + s_start = logo_circle.point_from_angle(self.THETA_START) + s_end = logo_circle.point_from_angle(self.THETA_END) + + self.circle = Circle(self.center, self.radius) + # note that angles are clockwise because of inverted y-axis + self._anchors = [SymmetricAnchorPoint(*t, use_degrees=True) + for t in [(s_start, -37, 90), + ((144, 312), 7, 20), + ((205, 375), 52, 50), + ((330, 380), -53, 60), + ((290, 260),-168, 50), + ((217, 245),-168, 50), + ((182, 118), -50, 60), + ((317, 125), 53, 60), + ((385, 198), 10, 20), + (s_end, -25, 60)]] + # normalize anchors so they have unit radius and are centered at origin + for a in self._anchors: + a.pt = (a.pt - self.CENTER) / self.RADIUS + a.length = a.length / self.RADIUS + + def snake_anchors(self): + """Return list of SymmetricAnchorPoints defining snake curve""" + anchors = [] + for a in self._anchors: + pt = self.radius * a.pt + self.center + length = self.radius * a.length + anchors.append(SymmetricAnchorPoint(pt, a.theta, length)) + return anchors + + def snake_curve(self): + """Return x, y coordinates of snake curve""" + return curve_from_anchor_points(self.snake_anchors()) + + def plot_snake_curve(self, **kwargs): + ax = kwargs.pop('ax', plt.gca()) + x, y = self.snake_curve() + ax.plot(x, y, 'k', **kwargs) + + def plot_circle(self, **kwargs): + self.circle.plot(**kwargs) + + def plot_image(self, **kwargs): + ax = kwargs.pop('ax', plt.gca()) + img = imgio.imread('data/scipy.png') + ax.imshow(img, **kwargs) + + def get_mask(self, shape, region): + """ + Parameters + ---------- + region : {'upper left', 'lower right'} + """ + if region == 'upper left': + theta = np.linspace(self.THETA_END, self.THETA_START - 2 * np.pi) + elif region == 'lower right': + theta = np.linspace(self.THETA_END, self.THETA_START) + else: + msg = "Expected 'upper left' or 'lower right'; got %s" % region + raise ValueError(msg) + xy_circle = self.circle.point_from_angle(theta).T + x, y = self.snake_curve() + xy_curve = np.array((x, y)).T + xy_poly = np.vstack((xy_curve, xy_circle)) + + h, w = shape[:2] + y_img, x_img = np.mgrid[:h, :w] + xy_points = np.column_stack((x_img.flat, y_img.flat)) + + mask = nx.points_inside_poly(xy_points, xy_poly) + return mask.reshape((h, w)) + + +def plot_scipy_trace(): + plt.figure() + logo = ScipyLogo() + logo.plot_snake_curve() + logo.plot_circle() + logo.plot_image() + plot_anchors(logo.snake_anchors()) + + +def plot_anchors(anchors, color='r', alpha=0.7): + for a in anchors: + c = a.control_points() + x, y = np.transpose(c) + plt.plot(x, y, 'o-', color=color, mfc='w', mec=color, alpha=alpha) + plt.plot(a.pt[0], a.pt[1], 'o', color=color, alpha=alpha) + + +def plot_snake_overlay(): + plt.figure() + logo = ScipyLogo((670, 250), 250) + logo.plot_snake_curve() + logo.plot_circle() + img = imgio.imread('data/snake_pixabay.jpg') + #mask = logo.get_mask(img.shape, 'upper left') + #img[mask] = 255 + plt.imshow(img) + + +def plot_lena_overlay(): + plt.figure() + logo = ScipyLogo((300, 300), 180) + logo.plot_snake_curve() + logo.plot_circle() + img = lena() + #mask = logo.get_mask(img.shape, 'upper left') + #img[mask] = 255 + plt.imshow(img) + + +if __name__ == '__main__': + plot_scipy_trace() + plot_snake_overlay() + plot_lena_overlay() + + plt.show() + From d30beba1adf7ee3553cbb77579bc6dc9f1c09e02 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 13:52:13 -0700 Subject: [PATCH 2/8] Use only snake image. --- scikits_image_logo.py | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/scikits_image_logo.py b/scikits_image_logo.py index 9b6465c1..81462ea3 100644 --- a/scikits_image_logo.py +++ b/scikits_image_logo.py @@ -10,7 +10,7 @@ import numpy as np import matplotlib.pyplot as plt import scipy.misc -import scikits.image.io as imgio +import scikits.image.io as sio import scikits.image.filter as imfilt import scipy_logo @@ -107,7 +107,7 @@ class SnakeLogo(LogoBase): def __init__(self): self.radius = 250 self.origin = (420, 0) - img = imgio.imread('data/snake_pixabay.jpg') + img = sio.imread('data/snake_pixabay.jpg') self.img = self._crop_image(img) LogoBase.__init__(self) @@ -119,17 +119,6 @@ snake.img = np.mean(snake.img, axis=2) snake.edges = np.mean(snake.edges, axis=2) -class LenaLogo(LogoBase): - - def __init__(self): - self.radius = 180 - self.origin = (120, 120) - self.img = self._crop_image(scipy.misc.lena()) - LogoBase.__init__(self) - -lena = LenaLogo() - - # Demo plotting functions # ======================= @@ -198,17 +187,12 @@ if __name__ == '__main__': plotters = (red_light_edges, red_dark_edges, blue_light_edges, blue_dark_edges, green_orange_light_edges, green_orange_dark_edges) - f, axes_array = plt.subplots(nrows=4, ncols=len(plotters)) + f, axes_array = plt.subplots(nrows=2, ncols=len(plotters)) for plot, ax_col in zip(plotters, axes_array.T): prepare_axes(ax_col[0]) plot(snake) prepare_axes(ax_col[1]) plot(snake, whiten=True) - - prepare_axes(ax_col[2]) - plot(lena) - prepare_axes(ax_col[3]) - plot(lena, whiten=True) plt.tight_layout() f, ax = plt.subplots() @@ -216,10 +200,5 @@ if __name__ == '__main__': green_orange_dark_edges(snake, whiten=(False, True)) #plt.savefig('green_orange_snake.pdf', bbox_inches='tight') - f, ax = plt.subplots() - prepare_axes(ax) - green_orange_dark_edges(lena, whiten=(False, True)) - #plt.savefig('green_orange_lena.pdf', bbox_inches='tight') - plt.show() From 6ab6aefebadc1c83de2a2eb59704e6d817c07857 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 15:09:14 -0700 Subject: [PATCH 3/8] Adjust orange snake brightness. Add --no-plot flag. --- scikits_image_logo.py | 56 ++++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/scikits_image_logo.py b/scikits_image_logo.py index 81462ea3..e96a7f25 100644 --- a/scikits_image_logo.py +++ b/scikits_image_logo.py @@ -107,8 +107,13 @@ class SnakeLogo(LogoBase): def __init__(self): self.radius = 250 self.origin = (420, 0) - img = sio.imread('data/snake_pixabay.jpg') - self.img = self._crop_image(img) + img = sio.imread('data/snake_pixabay.jpg') + img = self._crop_image(img) + + img = img.astype(float) * 1.1 + img[img > 255] = 255 + self.img = img.astype(np.uint8) + LogoBase.__init__(self) @@ -184,21 +189,38 @@ def green_orange_dark_edges(logo, **kwargs): if __name__ == '__main__': - plotters = (red_light_edges, red_dark_edges, - blue_light_edges, blue_dark_edges, - green_orange_light_edges, green_orange_dark_edges) - f, axes_array = plt.subplots(nrows=2, ncols=len(plotters)) - for plot, ax_col in zip(plotters, axes_array.T): - prepare_axes(ax_col[0]) - plot(snake) - prepare_axes(ax_col[1]) - plot(snake, whiten=True) - plt.tight_layout() + import sys + plot = False + if len(sys.argv) < 2 or sys.argv[1] != '--no-plot': + plot = True - f, ax = plt.subplots() - prepare_axes(ax) - green_orange_dark_edges(snake, whiten=(False, True)) - #plt.savefig('green_orange_snake.pdf', bbox_inches='tight') + print "Run with '--no-plot' flag to generate logo silently." - plt.show() + def plot_all(): + plotters = (red_light_edges, red_dark_edges, + blue_light_edges, blue_dark_edges, + green_orange_light_edges, green_orange_dark_edges) + + f, axes_array = plt.subplots(nrows=2, ncols=len(plotters)) + for plot, ax_col in zip(plotters, axes_array.T): + prepare_axes(ax_col[0]) + plot(snake) + prepare_axes(ax_col[1]) + plot(snake, whiten=True) + plt.tight_layout() + + def plot_snake(): + + f, ax = plt.subplots() + prepare_axes(ax) + green_orange_dark_edges(snake, whiten=(False, True)) + plt.savefig('green_orange_snake.png', bbox_inches='tight') + + if plot: + plot_all() + + plot_snake() + + if plot: + plt.show() From acd5a5972c9b07ece8674b4a1be2f3da4d6e8fe9 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 15:33:32 -0700 Subject: [PATCH 4/8] Add SVG logo with text and Makefile to convert to png. --- Makefile | 10 ++++++ snake_logo.svg | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 Makefile create mode 100644 snake_logo.svg diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..7f257b88 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +.PHONY: logo + +logo: green_orange_snake.png snake_logo.svg + inkscape --export-png=snake_logo.png --export-dpi=100 \ + --export-area-drawing --export-background-opacity=1 \ + snake_logo.svg + +green_orange_snake.png: + python scikits_image_logo.py --no-plot + diff --git a/snake_logo.svg b/snake_logo.svg new file mode 100644 index 00000000..caa47694 --- /dev/null +++ b/snake_logo.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + scikits-image + image processing in python + + + From b9d8c64c1aaedcaf2bd2c6dc99693d4e10c82663 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 15:59:32 -0700 Subject: [PATCH 5/8] Match scikits.image directory structure. --- Makefile => doc/logo/Makefile | 0 {data => doc/logo/data}/scipy.png | Bin {data => doc/logo/data}/snake_pixabay.jpg | Bin .../logo/scikits_image_logo.py | 0 scipy_logo.py => doc/logo/scipy_logo.py | 0 snake_logo.svg => doc/logo/snake_logo.svg | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename Makefile => doc/logo/Makefile (100%) rename {data => doc/logo/data}/scipy.png (100%) rename {data => doc/logo/data}/snake_pixabay.jpg (100%) rename scikits_image_logo.py => doc/logo/scikits_image_logo.py (100%) rename scipy_logo.py => doc/logo/scipy_logo.py (100%) rename snake_logo.svg => doc/logo/snake_logo.svg (100%) diff --git a/Makefile b/doc/logo/Makefile similarity index 100% rename from Makefile rename to doc/logo/Makefile diff --git a/data/scipy.png b/doc/logo/data/scipy.png similarity index 100% rename from data/scipy.png rename to doc/logo/data/scipy.png diff --git a/data/snake_pixabay.jpg b/doc/logo/data/snake_pixabay.jpg similarity index 100% rename from data/snake_pixabay.jpg rename to doc/logo/data/snake_pixabay.jpg diff --git a/scikits_image_logo.py b/doc/logo/scikits_image_logo.py similarity index 100% rename from scikits_image_logo.py rename to doc/logo/scikits_image_logo.py diff --git a/scipy_logo.py b/doc/logo/scipy_logo.py similarity index 100% rename from scipy_logo.py rename to doc/logo/scipy_logo.py diff --git a/snake_logo.svg b/doc/logo/snake_logo.svg similarity index 100% rename from snake_logo.svg rename to doc/logo/snake_logo.svg From 29b37d4e4a456c1465ceafec076fbe8ec6d03815 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 16:04:43 -0700 Subject: [PATCH 6/8] Match logo filename used in website. --- doc/logo/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/logo/Makefile b/doc/logo/Makefile index 7f257b88..2dd15c71 100644 --- a/doc/logo/Makefile +++ b/doc/logo/Makefile @@ -1,7 +1,7 @@ .PHONY: logo logo: green_orange_snake.png snake_logo.svg - inkscape --export-png=snake_logo.png --export-dpi=100 \ + inkscape --export-png=scikits_image_logo.png --export-dpi=100 \ --export-area-drawing --export-background-opacity=1 \ snake_logo.svg From 877ca68949fa6c1622133a179dd0759ae3e26285 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 23:04:43 -0700 Subject: [PATCH 7/8] Also produce a scaled down version of the logo. --- doc/logo/Makefile | 1 + doc/logo/shrink_logo.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 doc/logo/shrink_logo.py diff --git a/doc/logo/Makefile b/doc/logo/Makefile index 2dd15c71..46c36fda 100644 --- a/doc/logo/Makefile +++ b/doc/logo/Makefile @@ -4,6 +4,7 @@ logo: green_orange_snake.png snake_logo.svg inkscape --export-png=scikits_image_logo.png --export-dpi=100 \ --export-area-drawing --export-background-opacity=1 \ snake_logo.svg + python shrink_logo.py green_orange_snake.png: python scikits_image_logo.py --no-plot diff --git a/doc/logo/shrink_logo.py b/doc/logo/shrink_logo.py new file mode 100644 index 00000000..f9c16e2c --- /dev/null +++ b/doc/logo/shrink_logo.py @@ -0,0 +1,16 @@ +from scikits.image import io, transform + +s = 0.7 + +img = io.imread('scikits_image_logo.png') +h, w, c = img.shape + +print "\nScaling down logo by %.1fx..." % s + +img = transform.homography(img, [[s, 0, 0], + [0, s, 0], + [0, 0, 1]], + output_shape=(int(h*s), int(w*s), 4), + order=3) + +io.imsave('scikits_image_logo_small.png', img) From 0fd5330c1850534d37872a22c36f6609ecefdfed Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 16 Sep 2011 23:13:56 -0700 Subject: [PATCH 8/8] Add logo to generated documentation. --- doc/source/_static/scikits_image_logo_small.png | Bin 0 -> 32337 bytes doc/source/conf.py | 2 +- doc/source/themes/agogo/static/agogo.css_t | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 doc/source/_static/scikits_image_logo_small.png diff --git a/doc/source/_static/scikits_image_logo_small.png b/doc/source/_static/scikits_image_logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..efd71678afd7c964a760e6baf0753bf0e54d71cf GIT binary patch literal 32337 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°aeyTkR73eCLo&K1%rDp4 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 literal 0 HcmV?d00001 diff --git a/doc/source/conf.py b/doc/source/conf.py index 34694a1d..c9959dd4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -123,7 +123,7 @@ html_title = 'scikits.image v%s docs' % version # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +html_logo = "scikits_image_logo_small.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/doc/source/themes/agogo/static/agogo.css_t b/doc/source/themes/agogo/static/agogo.css_t index 41aebe30..99d44d62 100644 --- a/doc/source/themes/agogo/static/agogo.css_t +++ b/doc/source/themes/agogo/static/agogo.css_t @@ -584,7 +584,7 @@ pre { background-color: {{ theme_codebgcolor }}; color: {{ theme_codetextcolor }}; line-height: 120%; - border: 1px solid #ac9; + border: 0px solid #ac9; border-left: none; border-right: none; }