From: Greg Burri Date: Mon, 22 Jun 2015 14:08:20 +0000 (+0200) Subject: MAJ rapport. X-Git-Url: https://git.euphorik.ch/?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=malaria.git MAJ rapport. --- diff --git a/rapport/img/schema_processus.eps b/rapport/img/schema_processus.eps index 59dc5f9..662a8ff 100644 --- a/rapport/img/schema_processus.eps +++ b/rapport/img/schema_processus.eps @@ -1,10 +1,10 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Creator: cairo 1.14.1 (http://cairographics.org) -%%CreationDate: Tue Jun 09 16:39:06 2015 +%%CreationDate: Thu Jun 11 12:02:46 2015 %%Pages: 1 %%DocumentData: Clean7Bit %%LanguageLevel: 2 -%%BoundingBox: 8 8 614 434 +%%BoundingBox: 8 8 614 420 %%EndComments %%BeginProlog save @@ -548,8 +548,8 @@ Encoding 233 /eacute put /.notdef 0 def /one 1 def /two 2 def -/four 3 def -/three 4 def +/three 3 def +/four 4 def /five 5 def /T 6 def /r 7 def @@ -575,7 +575,7 @@ end readonly def <000100000009008000030010637674207bba679000002910000004466670676db55f31220000 2d5800000484676c7966ecad769f0000009c0000287468656164d0fd57c3000031dc00000036 686865610f13068a0000321400000024686d7478635705c900003238000000686c6f63610002 -33d4000032a00000006c6d617870044804f20000330c0000002070726570e5b6cb920000332c +324c000032a00000006c6d617870044804f20000330c0000002070726570e5b6cb920000332c 000007210002000000000400050000030007002dbc00040101000000070101b40102000a04be 0100000000050100000301bd00002ffee510e5003f3fe510e5313031112111252111210400fc 2003c0fc400500fb002004c000010034000702f20528005000eab9004b01f9403e4949024547 @@ -601,32 +601,32 @@ end readonly def 01171615140e0103686825152107441218232150260865a2408e8f845c452b6d404168182508 49034b74d3b0ca131b4dad7dbc6fb66a543717050d420d050a0d0401010302030301020244b4 8fa672b4424a76444031474d2b1d61598ac7973c35486aad7dab020402244310200404080710 -306e00020031ffea0391052800460063018840584205060708090a0b0c0d0e0e415d5c5b5a59 -5857565554530b5d5c5b5a595857565554530b525e5ea9273114272731292a31353652585b08 -33605e634223262703442005192203011c0e100d1015130d130315420063861cb80114b26186 -60b801144009204486002086038600b80111404e0101153305150d3835363a393d3f03414005 -080942040a07314f52030e504e4d49164c471915292a585b5e0517262225270324230a0a3c07 -3636013a3737413a3a013c3e3e405049406b414c6b49b801e6b41541410107b801e6b70e176b -151f010101b80147b5266b246b2315b80120b51f0ed00e020eb801a9b7c023d023f02303232f -5dfd5de410f4f4ed5d10e410f511392f10f4e410e4103c103c103c12392f12392f1112392f11 -12392f1112173911121739113939123911393911121739111217391112173911123939003f3f -12392fedf4e410e410fdf4ede4103c1112393f12393f39111217391112173911123911121739 -87052e2b047d10c4011739001739870e103cc4c4c43c3c3c3c053c3c31300115062322270615 -170717140706072723222f0122073727343706072322272623220727372737273637133e0137 -363736373633321f01071707170f011707170717073217333225363534263537273727343706 -070607060f0106070e010736331733170391361f1d2d030201020302015635150b11070f0204 -02305f425568210a0f1f02030203022f0de54d5b121c151f093b0f1334020402030202010101 -0101010323341810fea90603030203010208140e0927305a0d101b4b191e0b30608601e4a803 -0318053c402c0c301b3601010204c27d050e01010301020d451629085913016072771d2d1a27 -1003030c4a1a2929632b383447444fab020432190a37084e43ad4f0a250c18170b304790141b -2c72360301020001001dffe4038005240035008b400a1a16010b0b1102000017b80165b72034 -013434111f26bb0115002d000901114014112d7f1f11051f0d173100020b0c0423cd060106b8 -0120b51414cd310131b80120400b401b901b02a01bc01b021bb80147400b6f239f2302102350 -2302232f7271fd715dfd71392fed711117391139003f3f10ed10ed10e41112392f5ded332f33 -12392f3130015d012627363736353426232207273e0137363332161514060733321615140e01 -232227263534363332161716171633323e013534262322014f1e13b63d285c3b7a643f305d56 -4161838e627d1586a95ffeb9b35e3c3a2d2640371c1a2e15357344774734026026168453353e -405e95226969251c83634e8f55ce7a67e0993f283626382846240a1348a76f77890000000001 +306e0001001dffe4038005240035008b400a1a16010b0b1102000017b80165b7203401343411 +1f26bb0115002d000901114014112d7f1f11051f0d173100020b0c0423cd060106b80120b514 +14cd310131b80120400b401b901b02a01bc01b021bb80147400b6f239f23021023502302232f +7271fd715dfd71392fed711117391139003f3f10ed10ed10e41112392f5ded332f3312392f31 +30015d012627363736353426232207273e0137363332161514060733321615140e0123222726 +3534363332161716171633323e013534262322014f1e13b63d285c3b7a643f305d564161838e +627d1586a95ffeb9b35e3c3a2d2640371c1a2e15357344774734026026168453353e405e9522 +6969251c83634e8f55ce7a67e0993f283626382846240a1348a76f778900000000020031ffea +0391052800460063018840584205060708090a0b0c0d0e0e415d5c5b5a595857565554530b5d +5c5b5a595857565554530b525e5ea9273114272731292a31353652585b0833605e6342232627 +03442005192203011c0e100d1015130d130315420063861cb80114b2618660b8011440092044 +86002086038600b80111404e0101153305150d3835363a393d3f03414005080942040a07314f +52030e504e4d49164c471915292a585b5e0517262225270324230a0a3c073636013a3737413a +3a013c3e3e405049406b414c6b49b801e6b41541410107b801e6b70e176b151f010101b80147 +b5266b246b2315b80120b51f0ed00e020eb801a9b7c023d023f02303232f5dfd5de410f4f4ed +5d10e410f511392f10f4e410e4103c103c103c12392f12392f1112392f1112392f1112173911 +121739113939123911393911121739111217391112173911123939003f3f12392fedf4e410e4 +10fdf4ede4103c1112393f12393f3911121739111217391112391112173987052e2b047d10c4 +011739001739870e103cc4c4c43c3c3c3c053c3c313001150623222706151707171407060727 +23222f0122073727343706072322272623220727372737273637133e0137363736373633321f +01071707170f011707170717073217333225363534263537273727343706070607060f010607 +0e010736331733170391361f1d2d030201020302015635150b11070f020402305f425568210a +0f1f02030203022f0de54d5b121c151f093b0f13340204020302020101010101010323341810 +fea90603030203010208140e0927305a0d101b4b191e0b30608601e4a8030318053c402c0c30 +1b3601010204c27d050e01010301020d451629085913016072771d2d1a271003030c4a1a2929 +632b383447444fab020432190a37084e43ad4f0a250c18170b304790141b2c72360301020001 0041ffea036d0522005a00d8402c534747ab151114151511030001570f115303580a15184143 47033c2f0b860a57040f0a01df0aef0aff0a030ab8011c400f580458010f3c01df3cef3cff3c 033cb8017fb64f18011818012fb80115401c357f280105280d03002111394115135247472c48 @@ -908,12 +908,12 @@ b008260f10161345683ab001162d2cb4000100000015b00826b00826b00826b008260f101613 8a8a462320468a608a61b8ff8062232010238ab14b4b8a70456020b0005058b00161b8ffba8b 1bb0468c59b0106068013a2d2cb0332bb02a2a2d2c4b53234b515a5820458a60441b2121592d 2cb0134358031b02592d2cb0134358021b03592d2c4b53234b515a58381b2121592d00010000 -0002666666712e8a5f0f3cf5001b080000000000ad0eaefd00000000bc92f863fed3fd060958 +000266666671319a5f0f3cf5001b080000000000ad0eaefd00000000bc92f863fed3fd060958 07f80001000900010001000000000001000006e5fde5000009b1fed3fed90958000100000000 -00000000000000000000001a06000000032b003403c0002703c0003103c0001d03c000410580 +00000000000000000000001a06000000032b003403c0002703c0001d03c0003103c000410580 fffe02c0002403d500640240001e0280003903c0004806c0002a046b002802000000046b004e 0355005a03c000480215000703c0004f042b004b0415006604550032046b002a046b002a02ab -00eb00000000000000540000022c000003b4000006640000078c0000096800000b9000000d34 +00eb00000000000000540000022c000003b4000004dc0000078c0000096800000b9000000d34 00000f0c000010500000118c000012d800001638000018900000189000001ab800001d640000 1d9800001ebc00001f940000208c00002260000024ac00002634000028280000287400010000 001a00f8003c00d1000500020010002f003a0000039f02f700030001b90040021fb2141536b9 @@ -971,36 +971,36 @@ b92d412d411bba04000400000b2b59b00e2342b00f2342b0124358b9187e3b211bba01a80400 %%EndSetup %%Page: 1 1 %%BeginPageSetup -%%PageBoundingBox: 8 8 614 434 +%%PageBoundingBox: 8 8 614 420 %%EndPageSetup -q 8 8 606 426 rectclip q +q 8 8 606 412 rectclip q 0.690196 g -140.477 432.561 472.945 -199.945 re f* +140.477 418.161 472.945 -199.945 re f* 0 g 0.8 w 0 J 0 j [] 0.0 d -4 M q 1 0 0 -1 0 441.463287 cm +4 M q 1 0 0 -1 0 427.063263 cm 140.477 8.902 472.945 199.945 re S Q 0.917647 g -475.859 405.17 126.059 -139.711 re f* +475.859 390.77 126.059 -139.711 re f* 0 g 0.300187 w -q 0.998757 0 0 -1 0 441.463287 cm +q 0.998757 0 0 -1 0 427.063263 cm 476.451 36.293 126.215 139.711 re S Q BT -14 0 0 14 501.249516 290.606233 Tm +14 0 0 14 501.249516 276.206208 Tm /f-0-0 1 Tf [(Extraction des )]TJ 0.802734 -1.25 Td [(sc)13(hizontes)]TJ ET Q q -480.461 400.873 116.855 -96.648 re W n +480.461 386.473 116.855 -96.648 re W n q -480 401.463 118 -98 re W n -[ 0.336759 0 0 0.336759 480.460602 304.223456 ] concat +480 387.063 118 -98 re W n +[ 0.336759 0 0 0.336759 480.460602 289.823431 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -2345,19 +2345,19 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" 8u=d;RE9kBt&/eY.@uHp&(ap*dhc'f`~>Q Q q 0.917647 g -8.66 405.163 126.059 -129.984 re f* +8.66 390.762 126.059 -129.984 re f* 0 g 0.310831 w 0 J 0 j [] 0.0 d -4 M q 1 0 0 -0.931527 0 441.463287 cm +4 M q 1 0 0 -0.931527 0 427.063263 cm 8.66 38.969 126.059 139.539 re S Q Q q -13.262 400.873 116.855 -96.648 re W n +13.262 386.473 116.855 -96.648 re W n q -13 401.463 118 -98 re W n -[ 0.336759 0 0 0.336759 13.260616 304.223456 ] concat +13 387.063 118 -98 re W n +[ 0.336759 0 0 0.336759 13.260616 289.823431 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -3360,24 +3360,24 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" Q q 0 g BT -14 0 0 14 25.155585 287.251276 Tm +14 0 0 14 25.155585 272.851251 Tm /f-0-0 1 Tf [(Imag)-15(e en ent)3(r\351e)]TJ ET 0.917647 g -168.66 405.17 126.059 -139.711 re f* +168.66 390.77 126.059 -139.711 re f* 0 g 0.300187 w 0 J 0 j [] 0.0 d -4 M q 0.998757 0 0 -1 0 441.463287 cm +4 M q 0.998757 0 0 -1 0 427.063263 cm 168.87 36.293 126.215 139.711 re S Q Q q -173.262 400.873 116.855 -96.648 re W n +173.262 386.473 116.855 -96.648 re W n q -173 401.463 118 -98 re W n -[ 0.336759 0 0 0.336759 173.260627 304.223456 ] concat +173 387.063 118 -98 re W n +[ 0.336759 0 0 0.336759 173.260627 289.823431 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -4392,26 +4392,26 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" Q q 0 g BT -14 0 0 14 193.527485 290.606233 Tm +14 0 0 14 193.527485 276.206208 Tm /f-0-0 1 Tf [(D\351tectio)3(n des )]TJ -0.53125 -1.25 Td [(\351l\351ments co)3(lor\351s)]TJ ET 0.917647 g -322.258 378.315 126.059 -139.715 re f* +322.258 363.915 126.059 -139.715 re f* 0 g 0.300187 w 0 J 0 j [] 0.0 d -4 M q 0.998757 0 0 -1 0 441.463287 cm +4 M q 0.998757 0 0 -1 0 427.063263 cm 322.659 63.148 126.215 139.715 re S Q Q q -326.859 374.018 116.855 -96.648 re W n +326.859 359.618 116.855 -96.648 re W n q -326 374.463 118 -98 re W n -[ 0.336759 0 0 0.336759 326.860627 277.366313 ] concat +326 360.063 118 -98 re W n +[ 0.336759 0 0 0.336759 326.860627 262.966288 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -5660,7 +5660,7 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" Q q 0 g BT -14 0 0 14 347.649531 263.749089 Tm +14 0 0 14 347.649531 249.349065 Tm /f-0-0 1 Tf [(Extraction des )]TJ -0.124023 -1.25 Td @@ -5670,139 +5670,140 @@ ET 0 J 0 j [] 0.0 d -4 M q 1 0 0 -1 0 441.463287 cm +4 M q 1 0 0 -1 0 427.063263 cm 130.117 101.262 m 166.238 101.262 l S Q -158.914 343.592 m 168.094 340.217 l 158.914 336.842 l 160.383 338.834 160.371 - 341.561 158.914 343.592 c h -158.914 343.592 m f* +158.914 329.192 m 168.094 325.817 l 158.914 322.442 l 160.383 324.434 160.371 + 327.161 158.914 329.192 c h +158.914 329.192 m f* 0.525 w 1 j -q -1 0 0 1 0 441.463287 cm +q -1 0 0 1 0 427.063263 cm -158.914 -97.871 m -168.094 -101.246 l -158.914 -104.621 l -160.383 -102.629 -160.371 -99.902 -158.914 -97.871 c h -158.914 -97.871 m S Q 1.4 w 0 j -q 1 0 0 -1 0 441.463287 cm +q 1 0 0 -1 0 427.063263 cm 294.734 101.254 m 319.781 101.254 l S Q -312.457 343.596 m 321.637 340.221 l 312.457 336.846 l 313.922 338.838 313.914 - 341.565 312.457 343.596 c h -312.457 343.596 m f* +312.457 329.196 m 321.637 325.821 l 312.457 322.446 l 313.922 324.438 313.914 + 327.165 312.457 329.196 c h +312.457 329.196 m f* 0.525 w 1 j -q -1 0 0 1 0 441.463287 cm +q -1 0 0 1 0 427.063263 cm -312.457 -97.867 m -321.637 -101.242 l -312.457 -104.617 l -313.922 -102.625 -313.914 -99.898 -312.457 -97.867 c h -312.457 -97.867 m S Q 1.4 w 0 j -q 1 0 0 -1 0 441.463287 cm +q 1 0 0 -1 0 427.063263 cm 294.73 53.332 m 473.191 53.332 l S Q -465.871 391.522 m 475.047 388.147 l 465.871 384.772 l 467.336 386.764 467.328 - 389.491 465.871 391.522 c h -465.871 391.522 m f* +465.871 377.122 m 475.047 373.747 l 465.871 370.372 l 467.336 372.364 467.328 + 375.091 465.871 377.122 c h +465.871 377.122 m f* 0.525 w 1 j -q -1 0 0 1 0 441.463287 cm +q -1 0 0 1 0 427.063263 cm -465.871 -49.941 m -475.047 -53.316 l -465.871 -56.691 l -467.336 -54.699 -467.328 -51.973 -465.871 -49.941 c h -465.871 -49.941 m S Q -2 w -0 j -q 1 0 0 -1 0 441.463287 cm -227.406 208.633 m 227.441 232.637 l S Q -232.27 219.295 m 227.465 206.178 l 222.625 219.284 l 225.477 217.194 229.371 - 217.209 232.27 219.295 c h -232.27 219.295 m f* -0.749999 w -1 j -q -0.00145658 1 1 0.00145658 0 441.463287 cm --222.506 231.945 m -235.616 227.122 l -222.503 222.301 l -224.597 225.149 - -224.588 229.044 -222.506 231.945 c h --222.506 231.945 m S Q 1 g -163.445 356.643 m 163.445 351.522 159.289 347.37 154.168 347.37 c 149.047 - 347.37 144.891 351.522 144.891 356.643 c 144.891 361.768 149.047 365.92 - 154.168 365.92 c 159.289 365.92 163.445 361.768 163.445 356.643 c h -163.445 356.643 m f* +163.445 342.243 m 163.445 337.122 159.289 332.97 154.168 332.97 c 149.047 + 332.97 144.891 337.122 144.891 342.243 c 144.891 347.368 149.047 351.52 + 154.168 351.52 c 159.289 351.52 163.445 347.368 163.445 342.243 c h +163.445 342.243 m f* 0 g 0.8 w 0 j -q 1 0 0 -1 0 441.463287 cm +q 1 0 0 -1 0 427.063263 cm 163.445 84.82 m 163.445 89.941 159.289 94.094 154.168 94.094 c 149.047 94.094 144.891 89.941 144.891 84.82 c 144.891 79.695 149.047 75.543 154.168 75.543 c 159.289 75.543 163.445 79.695 163.445 84.82 c h 163.445 84.82 m S Q BT -16 0 0 16 151.019518 351.461232 Tm +16 0 0 16 151.019518 337.061208 Tm /f-1-0 1 Tf (1)Tj ET 1 g -316.277 354.78 m 316.277 349.655 312.125 345.502 307.004 345.502 c 301.879 - 345.502 297.727 349.655 297.727 354.78 c 297.727 359.901 301.879 364.053 - 307.004 364.053 c 312.125 364.053 316.277 359.901 316.277 354.78 c h -316.277 354.78 m f* +316.277 340.38 m 316.277 335.255 312.125 331.102 307.004 331.102 c 301.879 + 331.102 297.727 335.255 297.727 340.38 c 297.727 345.501 301.879 349.653 + 307.004 349.653 c 312.125 349.653 316.277 345.501 316.277 340.38 c h +316.277 340.38 m f* 0 g -q 1 0 0 -1 0 441.463287 cm +q 1 0 0 -1 0 427.063263 cm 316.277 86.684 m 316.277 91.809 312.125 95.961 307.004 95.961 c 301.879 95.961 297.727 91.809 297.727 86.684 c 297.727 81.563 301.879 77.41 307.004 77.41 c 312.125 77.41 316.277 81.563 316.277 86.684 c h 316.277 86.684 m S Q BT -16 0 0 16 303.275697 349.594359 Tm +16 0 0 16 303.275697 335.194334 Tm /f-1-0 1 Tf (2)Tj ET 1 g -218.059 219.03 m 218.059 213.909 213.906 209.752 208.785 209.752 c 203.664 - 209.752 199.508 213.909 199.508 219.03 c 199.508 224.151 203.664 228.307 - 208.785 228.307 c 213.906 228.307 218.059 224.151 218.059 219.03 c h -218.059 219.03 m f* -0 g -q 1 0 0 -1 0 441.463287 cm -218.059 222.434 m 218.059 227.555 213.906 231.711 208.785 231.711 c 203.664 - 231.711 199.508 227.555 199.508 222.434 c 199.508 217.313 203.664 213.156 - 208.785 213.156 c 213.906 213.156 218.059 217.313 218.059 222.434 c h -218.059 222.434 m S Q -BT -16 0 0 16 205.058401 213.846104 Tm -/f-1-0 1 Tf -(4)Tj -ET -1 g -401.113 400.08 m 401.113 394.959 396.961 390.807 391.84 390.807 c 386.715 - 390.807 382.563 394.959 382.563 400.08 c 382.563 405.205 386.715 409.358 - 391.84 409.358 c 396.961 409.358 401.113 405.205 401.113 400.08 c h -401.113 400.08 m f* +401.113 385.68 m 401.113 380.559 396.961 376.407 391.84 376.407 c 386.715 + 376.407 382.563 380.559 382.563 385.68 c 382.563 390.805 386.715 394.958 + 391.84 394.958 c 396.961 394.958 401.113 390.805 401.113 385.68 c h +401.113 385.68 m f* 0 g -q 1 0 0 -1 0 441.463287 cm +q 1 0 0 -1 0 427.063263 cm 401.113 41.383 m 401.113 46.504 396.961 50.656 391.84 50.656 c 386.715 50.656 382.563 46.504 382.563 41.383 c 382.563 36.258 386.715 32.105 391.84 32.105 c 396.961 32.105 401.113 36.258 401.113 41.383 c h 401.113 41.383 m S Q BT -16 0 0 16 388.112265 394.897926 Tm +16 0 0 16 388.112265 380.497901 Tm /f-1-0 1 Tf (3)Tj ET 0.690196 g -150.176 205.752 310.473 -196.848 re f* +152.461 205.751 325.719 -196.848 re f* 0 g 0.8 w -q 1 0 0 -1 0 441.463287 cm -150.176 235.711 310.473 196.848 re S Q +q 1 0 0 -1 0 427.063263 cm +152.461 221.313 325.719 196.848 re S Q +1 g +189.09 192.97 m 189.09 187.845 184.938 183.692 179.816 183.692 c 174.691 + 183.692 170.539 187.845 170.539 192.97 c 170.539 198.091 174.691 202.243 + 179.816 202.243 c 184.938 202.243 189.09 198.091 189.09 192.97 c h +189.09 192.97 m f* +0 g +0.8 w +q 1 0 0 -1 0 427.063263 cm +189.09 234.094 m 189.09 239.219 184.938 243.371 179.816 243.371 c 174.691 + 243.371 170.539 239.219 170.539 234.094 c 170.539 228.973 174.691 224.82 + 179.816 224.82 c 184.938 224.82 189.09 228.973 189.09 234.094 c h +189.09 234.094 m S Q +BT +16 0 0 16 176.088857 187.784143 Tm +/f-1-0 1 Tf +(4)Tj +ET +2 w +q 1 0 0 -1 0 427.063263 cm +195.406 208.969 m 195.441 249.574 l S Q +200.273 187.954 m 195.465 174.841 l 190.633 187.946 l 193.48 185.852 197.375 + 185.868 200.273 187.954 c h +200.273 187.954 m f* +0.75 w +1 j +q -0.000860969 1 1 0.000860969 0 427.063263 cm +-239.282 200.067 m -252.391 195.248 l -239.281 190.427 l -241.377 193.273 + -241.365 197.167 -239.282 200.067 c h +-239.282 200.067 m S Q 0.917647 g -164.418 176.245 126.059 -160.52 re f* +164.418 176.243 126.059 -160.52 re f* 0 g 0.321765 w -q 0.869291 0 0 -1 0 441.463287 cm -189.14 265.219 145.013 160.52 re S Q +0 j +q 0.869291 0 0 -1 0 427.063263 cm +189.14 250.82 145.013 160.52 re S Q Q q -169.02 171.827 116.855 -96.648 re W n +169.02 171.829 116.855 -96.648 re W n q -169 172.463 117 -98 re W n -[ 0.336759 0 0 0.336759 169.0189 75.17865 ] concat +169 172.063 117 -97 re W n +[ 0.336759 0 0 0.336759 169.0189 75.178625 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -7169,7 +7170,7 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" Q q 0 g BT -14 0 0 14 184.771338 58.554325 Tm +14 0 0 14 184.771338 58.5543 Tm /f-0-0 1 Tf [(S\351gmentat)3(ion et )]TJ -0.626953 -1.25 Td @@ -7178,19 +7179,19 @@ BT [(cellules)]TJ ET 0.917647 g -320.988 176.725 126.059 -139.711 re f* +320.988 176.723 126.059 -139.711 re f* 0 g 0.300187 w 0 J 0 j [] 0.0 d -4 M q 0.998757 0 0 -1 0 441.463287 cm -321.388 264.738 126.215 139.711 re S Q +4 M q 0.998757 0 0 -1 0 427.063263 cm +321.388 250.34 126.215 139.711 re S Q Q q -325.59 172.428 116.855 -96.648 re W n +325.59 172.427 116.855 -96.648 re W n q -325 172.463 118 -97 re W n -[ 0.336759 0 0 0.336759 325.590312 75.777593 ] concat +325 173.063 118 -98 re W n +[ 0.336759 0 0 0.336759 325.590312 75.777569 ] concat /DeviceRGB setcolorspace 8 dict dup begin /ImageType 1 def @@ -8441,7 +8442,7 @@ s4IA1!#S.LBk@>F8P(B3#QOi)zzs6K^t7!3!TGlRjF"98E%?N:*+mJm__A8bpg!+`kF!!!'" Q q 0 g BT -14 0 0 14 331.541395 62.298341 Tm +14 0 0 14 331.541395 62.298316 Tm /f-0-0 1 Tf [(D\351nombrement des )]TJ 0.668945 -1.25 Td @@ -8451,41 +8452,41 @@ ET 0 J 0 j [] 0.0 d -4 M q 1 0 0 -1 0 441.463287 cm -290.574 343.746 m 318.883 343.746 l S Q -311.563 101.104 m 320.738 97.729 l 311.563 94.354 l 313.027 96.346 313.02 - 99.073 311.563 101.104 c h -311.563 101.104 m f* +4 M q 1 0 0 -1 0 427.063263 cm +290.574 329.348 m 318.883 329.348 l S Q +311.563 101.102 m 320.738 97.727 l 311.563 94.352 l 313.027 96.348 313.02 + 99.071 311.563 101.102 c h +311.563 101.102 m f* 0.525 w 1 j -q -1 0 0 1 0 441.463287 cm --311.563 -340.359 m -320.738 -343.734 l -311.563 -347.109 l -313.027 -345.117 - -313.02 -342.391 -311.563 -340.359 c h --311.563 -340.359 m S Q +q -1 0 0 1 0 427.063263 cm +-311.563 -325.961 m -320.738 -329.336 l -311.563 -332.711 l -313.027 -330.715 + -313.02 -327.992 -311.563 -325.961 c h +-311.563 -325.961 m S Q 1 g -313.051 112.44 m 313.051 107.315 308.898 103.163 303.773 103.163 c 298.652 - 103.163 294.5 107.315 294.5 112.44 c 294.5 117.561 298.652 121.713 303.773 - 121.713 c 308.898 121.713 313.051 117.561 313.051 112.44 c h -313.051 112.44 m f* +313.051 112.438 m 313.051 107.317 308.898 103.165 303.773 103.165 c 298.652 + 103.165 294.5 107.317 294.5 112.438 c 294.5 117.563 298.652 121.716 303.773 + 121.716 c 308.898 121.716 313.051 117.563 313.051 112.438 c h +313.051 112.438 m f* 0 g 0.8 w 0 j -q 1 0 0 -1 0 441.463287 cm -313.051 329.023 m 313.051 334.148 308.898 338.301 303.773 338.301 c 298.652 - 338.301 294.5 334.148 294.5 329.023 c 294.5 323.902 298.652 319.75 303.773 - 319.75 c 308.898 319.75 313.051 323.902 313.051 329.023 c h -313.051 329.023 m S Q +q 1 0 0 -1 0 427.063263 cm +313.051 314.625 m 313.051 319.746 308.898 323.898 303.773 323.898 c 298.652 + 323.898 294.5 319.746 294.5 314.625 c 294.5 309.5 298.652 305.348 303.773 + 305.348 c 308.898 305.348 313.051 309.5 313.051 314.625 c h +313.051 314.625 m S Q BT -16 0 0 16 300.047273 107.255216 Tm +16 0 0 16 300.047273 107.255191 Tm /f-1-0 1 Tf (5)Tj ET 1 g BT -18 0 0 18 254.272077 416.978555 Tm +18 0 0 18 254.272077 402.578531 Tm /f-1-0 1 Tf [(T)56(raitement des \351l\351ments color\351s)]TJ -18.000001 0 0 17.999999 175.280481 186.559377 Tm +18.000001 0 0 17.999999 209.986194 188.84507 Tm [(S\351gmentation des g)9(lobules r)-11(ouges)]TJ ET Q Q diff --git a/rapport/img/schema_processus.svg b/rapport/img/schema_processus.svg index 74868ac..69cf94c 100644 --- a/rapport/img/schema_processus.svg +++ b/rapport/img/schema_processus.svg @@ -12,8 +12,8 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="219.54318mm" - height="155.73843mm" - viewBox="0 0 777.90893 551.82909" + height="150.65843mm" + viewBox="0 0 777.90893 533.82908" id="svg2" version="1.1" inkscape:version="0.91 r13725" @@ -184,8 +184,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" - inkscape:cx="282.71517" - inkscape:cy="341.1374" + inkscape:cx="402.61684" + inkscape:cy="339.89477" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -446,12 +446,6 @@ d="m 367.42953,96.392613 223.07861,0" id="path6962" inkscape:connector-curvature="0" /> - @@ -494,27 +488,6 @@ x="23.184639" y="84.966698">2 - - - 4 - @@ -539,13 +512,40 @@ + x="189.59135" + y="306.3678" /> + + + 4 + + + transform="translate(151.67371,21.163162)"> @@ -605,7 +605,7 @@ id="flowPara5866-7">Ségmentation et dénombrement des cellules + transform="translate(-130.46915,-18.156928)"> @@ -665,11 +665,11 @@ id="flowPara5866-7-5">Dénombrement des cellules infectées Ségmentation des globules rouges diff --git a/rapport/main.bib b/rapport/main.bib index a30d667..6bd4f16 100644 --- a/rapport/main.bib +++ b/rapport/main.bib @@ -10,7 +10,6 @@ year = "2008" } - @misc {Talbot-Morphologie, author = "Talbot, Hugues", title = "Introduction à la Morphologie Mathématique, Théorie et applications", diff --git a/rapport/main.tex b/rapport/main.tex index c295911..91d2223 100644 --- a/rapport/main.tex +++ b/rapport/main.tex @@ -24,6 +24,9 @@ \usepackage{courier} \usepackage{pifont} \usepackage{csquotes} +\usepackage{changepage} + +\strictpagecheck \lstset{basicstyle=\footnotesize\ttfamily,breaklines=true} \lstset{framextopmargin=50pt,frame=bottomline} @@ -82,7 +85,7 @@ Technologie de l'information et de la communication \vspace{8cm} \large -Juin 2015 - Révision N°1 +Juin 2015 - Révision n°1 \vspace{2cm} \normalsize @@ -113,7 +116,7 @@ Accepté par la HES-SO//Master (Suisse, Lausanne) sur proposition de M. Kocher. \vspace{0.5cm} \noindent Prof. Michel Kocher, conseiller du projet d'approfondissement\\ -TODO : Expert +Ph.D Roberto Rigamonti, expert principal \vspace{1cm} @@ -123,10 +126,10 @@ Lausanne, le \vspace{1cm} \noindent -\setlength{\tabcolsep}{20pt} +\setlength{\tabcolsep}{30pt} \begin{tabular}{ l l } - Prof. Michel Kocher. & XXX\\ - Conseiller & Responsable de filière + Prof. Michel Kocher. & Prof.\\ + Conseiller & Responsable de la filière \end{tabular} \newpage @@ -150,10 +153,18 @@ Cet article a pour but la description et la réalisation d'une méthode automati \newpage +\thispagestyle{empty} \tableofcontents \newpage %%%%%%%%%%%%%%%%%% +\checkoddpage +\ifoddpage +\else + \thispagestyle{empty} + \cleardoublepage % Devrait être \newpage, mais ça ne marche pas... +\fi + \section{Introduction} Le but de ce projet est de dénombrer de manière automatisée les globules rouges infectés par la malaria. Le nombre total de globules rouges est également recensé afin de pouvoir établir un taux d'infection. Cela est réalisé à partir d'images microscopiques fournies par Dr. Guy Prod'hom du laboratoire de parasitologie du \emph{CHUV} à Lausanne. @@ -164,7 +175,7 @@ L'ensemble du processus décrit ci-après est implémenté sous \emph{MATLAB} : \subsection{Images} -Les images initiales correspondent à des photographies de sang infecté agrandies 100 fois. Une \emph{coloration de May-Grünwald Giemsa} est utilisée afin de faire ressortir les parasites avec une teinte particulière. Les éléments principaux composant les images sont : les globules rouges (figure~\ref{fig:medical-globules-rouges}), les globules blancs (figure~\ref{fig:medical-globules-blancs}), les plaquettes (figure~\ref{fig:medical-plaquettes}) et les différentes formes du parasite. Ces éléments sont montrés par les figures \ref{fig:medical-elements-sang} et \ref{fig:medical-plasmodium}. +Les images initiales correspondent à des photographies de sang infecté agrandies 100 fois. Une \emph{coloration de May-Grünwald Giemsa} est utilisée afin de faire ressortir les parasites avec une teinte particulière. Les éléments principaux composant les images sont : les globules rouges (figure~\ref{fig:medical-globules-rouges}), les globules blancs (figure~\ref{fig:medical-globules-blancs}), les plaquettes (figure~\ref{fig:medical-plaquettes}) et les différentes formes du parasite (figure~\ref{fig:medical-plasmodium}). \begin{figure}[htbp] \centering @@ -225,23 +236,19 @@ Notre but est de dénombrer les globules rouges sains ainsi que ceux infectés p \section{Outils utilisés} -Cette section aborde la description des différents outils morphologiques ainsi que les logiciels qui ont permis de mettre en pratique le processus. - -\subsection{Outils logiciels} - -L'implémentation est réalisée à l'aide de \emph{MATLAB 2015a}. Les différentes fonctions morphologiques (préfixées par \texttt{mm}) proviennent de la bibliothèque nommée \emph{SDC Morphology Toolbox for MATLAB}\footnote{\url{http://mmorph.com/}}. +Cette section aborde brièvement la description des différents outils morphologiques ainsi que les logiciels qui ont permis de mettre en pratique le processus. -\subsection{Outils morphologique} +\subsection{Outils morphologiques} -Une grande partie du processus décrit dans ce document s'appuie sur la morphologie mathématique\footnote{Georges Matheron et Jean Serra - 1964} appliquée, ici, au traitement d'images. +Une grande partie du processus décrit dans ce document s'appuie sur la morphologie mathématique\footnote{Georges Matheron et Jean Serra - 1964}\cite{Talbot-Morphologie}\cite{Manzanera-Morphologie}, ici appliquée au traitement d'images. Nous passons en revue un certain nombre d'opérateurs qui sont utilisés dans le processus. Pour chacun d'entre eux, nous donnons une brève explication, une définition formelle et la fonction correspondante utilisée dans \emph{MATLAB}. \subsubsection{Définitions de base} -Nous définissions tout d'abord l'image $E$ comme étant un sous-ensemble à deux dimension de $\mathbb{Z}$ puis $B$ comme un sous-ensemble de $E$ que nous nommons \emph{élément structurant}. $B_x$ correspond à $B$ translaté de $x$ dont $x$ appartient à $E$. $\breve{B}$ est l'élément symétrique de $B$, si l'élément $B$ est symétrique alors $\breve{B} = B$. +Nous définissions tout d'abord l'image $E$ comme étant un sous-ensemble à deux dimensions de $\mathbb{Z}$ puis $B$ comme un sous-ensemble de $E$ que nous nommons \emph{élément structurant}. $B_x$ correspond à $B$ translaté de $x$ dont $x$ appartient à $E$. $\breve{B}$ est l'élément symétrique de $B$, si l'élément $B$ est symétrique, alors $\breve{B} = B$. {\setlength{\abovedisplayskip}{0pt} \begin{flalign*} @@ -252,7 +259,7 @@ Nous définissions tout d'abord l'image $E$ comme étant un sous-ensemble à deu \subsubsection{Dilatation et érosion} -La dilatation est définie comme la somme de \emph{Minkowski} et nommé $\delta$. L'érosion est nommée $\epsilon$. +La dilatation est définie comme la somme de \emph{Minkowski} et nommée $\delta$. L'érosion est nommée $\epsilon$. {\setlength{\abovedisplayskip}{0pt} \begin{flalign*} @@ -260,7 +267,7 @@ La dilatation est définie comme la somme de \emph{Minkowski} et nommé $\delta$ \epsilon_B(X) &= X \ominus B = \{x \mid B_x \subset X \} & \end{flalign*} -les deux fonctions \emph{MATLAB} associées sont \texttt{mmdil} et \texttt{mmero}. +Les deux fonctions \emph{MATLAB} associées sont \texttt{mmdil} et \texttt{mmero}. \subsubsection{Ouverture et fermeture} @@ -273,7 +280,7 @@ L'ouverture et la fermeture sont définies à partir de dilatation et d'érosion \phi_B(X) &= X \bullet B = \epsilon_B (\delta_B (X)) & \end{flalign*} -les deux fonctions \emph{MATLAB} associées sont \texttt{mmopen} et \texttt{mmclose}. +Les deux fonctions \emph{MATLAB} associées sont \texttt{mmopen} et \texttt{mmclose}. \subsubsection{Ouverture et fermeture par aire} @@ -285,11 +292,11 @@ La figure~\ref{fig:fermeture-par-aire} illustre cela en montrant une vue en deux \begin{figure}[htbp] \centering \includegraphics[width=0.5\linewidth]{img/schema_fermeture_par_aire.eps} - \caption{Vue en deux dimensions de deux fermetures par aire} + \caption{Vue en deux dimensions de deux fermetures par aire ayant des valeurs de $\lambda$ différentes} \label{fig:fermeture-par-aire} \end{figure} -les deux fonctions \emph{MATLAB} associées sont \texttt{mmareaopen} et \texttt{mmareaclose}. +Les deux fonctions \emph{MATLAB} associées sont \texttt{mmareaopen} et \texttt{mmareaclose}. \subsubsection{Reconstruction par dilatation} @@ -307,7 +314,7 @@ La fonction \emph{MATLAB} associée est \texttt{mminfrec}. \subsubsection{Ligne de partage des eaux} -La ligne de partage des eaux (\emph{watersheds} en anglais) consiste à considérer une image comme une surface en trois dimensions où les valeurs d'intensité correspondent à des hauteurs puis à remplir progressivement les creux avec de l'eau jusqu'à que toute l'image soit entièrement remplie. Lorsque deux bassins se rejoignent pendant de la montée des eaux une digue est construite, l'ensemble des digue représente alors le résultat final. +La ligne de partage des eaux (\emph{watersheds} en anglais) consiste à considérer une image comme une surface en trois dimensions où les valeurs d'intensité correspondent à des hauteurs puis à remplir progressivement les creux avec de l'eau jusqu'à que toute l'image soit entièrement remplie. Lorsque deux bassins se rejoignent pendant la montée des eaux, une digue est construite. L'ensemble des digues représente alors le résultat final. Dans notre cas, nous utilisons des marqueurs pour définir à partir de quels creux l'eau est injectée. @@ -320,11 +327,10 @@ Les maximaux régionaux d'une image sont définis comme suit. La première ligne {\setlength{\abovedisplayskip}{0pt} \begin{flalign*} - \forall p \in M, \exists p' \in M, p \in (p' \oplus B) && \\ \begin{cases} - \forall p \in M & \text{si } f(p) = t \\ - \forall p \in (M \oplus B) \setminus M & \text{si } f(p) < t - \end{cases} + \forall p \in M & \text{si } f(p) = t, \quad \exists p' \in M, \quad p' \neq p, \quad p' \in (p \oplus B) \\ + \forall p \in (M \oplus B) \setminus M & \text{si } f(p) < t + \end{cases}&& \end{flalign*} La fonction \emph{MATLAB} associée est \texttt{mmregmax}. La figure \ref{fig:regmax_sample} montre un exemple d'application de cette fonction à l'aide d'un élément structurant carré de taille 5. @@ -348,14 +354,18 @@ La fonction \emph{MATLAB} associée est \texttt{mmregmax}. La figure \ref{fig:re \caption{Le résultat de l'application de \texttt{mmregmax}. Les pixels noires valent zéro} \label{fig:regmax_sample_result} \end{subfigure} - \caption{Example d'application de la fonction \texttt{mmregmax}} + \caption{Exemple d'application de la fonction \texttt{mmregmax}. Les deux pixels de valeur 5 forment une zone connexe : celle-ci est écartée car la dilaté du pixel de valeur 8 par l'élément structurant contient un des pixels de valeur 5} \label{fig:regmax_sample} \end{figure} +\subsection{Outils logiciels} + +L'implémentation est réalisée à l'aide de \emph{MATLAB 2015a}. Les différentes fonctions morphologiques (préfixées par \texttt{mm}) proviennent de la bibliothèque nommée \emph{SDC Morphology Toolbox for MATLAB}\footnote{\url{http://mmorph.com/}}. + \section{Approche générale} -Le processus complet est illustré par la figure \ref{fig:processusComplet}. Les différents chiffres correspondent aux étapes décrites ci après. Il y a deux phases principales : le traitement des éléments colorés (étapes 1 à 3) et la segmentation des globules rouges (étapes 4 et 5). +Le processus complet est illustré par la figure \ref{fig:processusComplet}. Les différents chiffres correspondent aux étapes décrites ci-après. Il y a deux phases principales : le traitement des éléments colorés (étapes 1 à 3) et la segmentation des globules rouges (étapes 4 et 5). La première étape (\ding{192}) consiste à détecter les éléments qui ont été colorés comprenant les parasites, les globules blancs et les plaquettes. Les parasites peuvent se trouver à l'extérieur de cellules, par exemple groupés sous la forme de schizontes. @@ -379,7 +389,7 @@ La sixième et dernière étape va compter le nombre de globules rouges total et Le processus est actuellement réalisé sur des images réduites de 40~\% à l'aide d'une interpolation bicubique par rapport à la taille originale afin d'augmenter la vitesse de l'ensemble du processus. La taille des images traitées après réduction est de 1167 x 1556. Voir la figure \ref{fig:imgRGB}. -La qualité du résultat final n'est pas beaucoup affectée par diminution de la taille des images : sur l'ensemble des douze images présentées à la section~\ref{resultats}, nous obtenons un taux d'erreur moyen de 17.9~\% pour les images originales contre 18.2~\% pour les images réduites. Le taux mesuré de référence est de 16.9 \%. Le temps moyen est de 485~s pour les images originales contre 78~s pour les images réduites. +La qualité du résultat final n'est pas très affectée par la diminution de la taille des images : sur l'ensemble des douze images présentées à la section~\ref{resultats}, nous obtenons un taux d'erreur moyen de 17.9~\% pour les images originales contre 18.2~\% pour les images réduites. Le taux mesuré de référence est de 16.9 \%. Le temps moyen est de 485~s pour les images originales contre 78~s pour les images réduites. \begin{figure}[htbp] \centering @@ -397,7 +407,7 @@ Cette opération a pour but de marquer les éléments colorés qui correspondent \subsubsection{Filtrage préliminaire} -Il est nécessaire, pour la suite du traitement, d'avoir les intensités les plus élevées pour les éléments colorés pour les deux composantes teinte et valeur. Pour se faire nous allons utiliser le négatif des deux composantes. De plus la composante \emph{teinte} est translatée de $100 / 255$ (141°) afin que les différents éléments de l'image, à savoir le fond, les cellules et les parties colorées, ne soient pas proches des valeurs extrêmes, voir l'histogramme montré par la figure \ref{fig:histogram_imgH}. $\mli{imgRGB} \rightarrow (\mli{imgH}, \mli{imgS})$. +Il est nécessaire, pour la suite du traitement, d'avoir les intensités les plus élevées pour les éléments colorés pour les deux composantes \emph{teinte} et \emph{valeur}. Pour se faire nous allons utiliser le négatif des deux composantes. De plus la composante \emph{teinte} est translatée de $100 / 255$ (141°) afin que les différents éléments de l'image, à savoir le fond, les cellules et les parties colorées, ne soient pas proches des valeurs extrêmes, voir l'histogramme montré par la figure \ref{fig:histogram_imgH}. $\mli{imgRGB} \rightarrow (\mli{imgH}, \mli{imgS})$. Les histogrammes des deux images $\mli{imgH}$ et $\mli{imgS}$ sont montrés par les figures \ref{fig:histogram_imgH} et \ref{fig:histogram_imgS}. L'histogramme de la teinte montre un premier sommet vers 80 correspondant au fond et un deuxième sommet vers 88 correspondant aux cellules, Les éléments colorés se trouvent aux environs de 120. L'histogramme de la saturation montre un premier sommet vers 128 correspondant aux cellules et un deuxième sommet vers 150 correspondant au fond : les éléments colorés se trouvent aux environs de 200. @@ -415,7 +425,7 @@ Les histogrammes des deux images $\mli{imgH}$ et $\mli{imgS}$ sont montrés par \label{fig:histogram_imgS} \end{figure} -Afin de gommer le bruit et de rendre le fond plus homogène, un filtre médian 5 x 5 suivi d'une fermeture par aire de 1000 sont appliqués à $\mli{imgH}$ et $\mli{imgS}$. $\mli{imgH} \rightarrow \mli{imgFiltered\{1\}}, \mli{imgS} \rightarrow \mli{imgFiltered\{2\}}$. Les figures \ref{fig:imgHFiltered} et \ref{fig:imgSFiltered} montrent les composantes \emph{teinte} et \emph{saturation} après filtrage. +Afin de gommer le bruit et de rendre le fond plus homogène, un filtre médian 5 x 5 puis une fermeture par aire de 1000 sont appliqués à $\mli{imgH}$ et $\mli{imgS}$. $\mli{imgH} \rightarrow \mli{imgFiltered\{1\}}, \mli{imgS} \rightarrow \mli{imgFiltered\{2\}}$. Les figures \ref{fig:imgHFiltered} et \ref{fig:imgSFiltered} montrent les composantes \emph{teinte} et \emph{saturation} après filtrage. \begin{figure}[htbp] \centering @@ -434,10 +444,10 @@ Afin de gommer le bruit et de rendre le fond plus homogène, un filtre médian 5 \subsubsection{Granulométrie} -L'objectif ici est de déterminer le rayon moyen des globules rouges (souvent abrégé \emph{RBC} pour \emph{red blood cell}). Pour ce faire, nous réalisons une succession de fermetures à l'aide d'un élément structurant de forme octogonale sur la composante \emph{saturation} ($\mli{imgFiltered\{2\}}$). Il est à noter que les globules rouges ont une intensité moindre que le fond (voir la figure~\ref{fig:imgSFiltered}), c'est pour cela que nous utilisons une fermeture et non une ouverture. Nous évitons ici un élément structurant ayant la forme d'un disque pour des raisons de performance, une fermeture avec ce dernier demandant d'effectuer beaucoup plus de calculs. Une ouverture par aire de 1000 est appliquée au préalable sur la composante \emph{saturation} afin de niveler l'intensité des cellules. +L'objectif ici est de déterminer le rayon moyen des globules rouges (souvent abrégé \emph{RBC} pour \emph{red blood cell}). Pour ce faire, nous réalisons une succession de fermetures à l'aide d'un élément structurant de forme octogonale sur la composante \emph{saturation} ($\mli{imgFiltered\{2\}}$). Il est à noter que les globules rouges ont une intensité moindre que le fond (voir la figure~\ref{fig:imgSFiltered}) : c'est pour cela que nous utilisons une fermeture et non une ouverture. Nous évitons ici un élément structurant ayant la forme d'un disque pour des raisons de performance, une fermeture avec ce dernier demandant d'effectuer beaucoup plus de calculs. Une ouverture par aire de 1000 est appliquée au préalable sur la composante \emph{saturation} afin de niveler l'intensité des cellules. \begin{sloppypar} % Pour éviter que certaines formules inline débordent dans la marge. -Nous partons d'un rayon initial de un pour arriver à un rayon maximal de $\mli{width}(\mli{imgRGB}) / 35$. Le rayon maximal est défini en fonction de la largeur de l'image, ce qui permet de ne pas être dépendant de sa résolution. À chaque itération une fermeture est effectuée suivi du calcul du volume relatif de l'image : $\mli{volume}(\mli{imgClosed}) \rightarrow A, 1 - A / \mli{volImg} \rightarrow N$ où $\mli{volImg}$ est le volume de $\mli{imgFiltered\{2\}}$. La différence de volume (spectre granulométrique) est calculée pour chaque itération $i$ comme suit : $\lvert N_{i + 1} - N_i \rvert$. +Nous partons d'un rayon initial de 1 pour arriver à un rayon maximal de $\mli{width}(\mli{imgRGB}) / 35$. Le rayon maximal est défini en fonction de la largeur de l'image, ce qui permet de ne pas être dépendant de sa résolution. À chaque itération une fermeture est effectuée suivi du calcul du volume relatif de l'image : $\mli{volume}(\mli{imgClosed}) \rightarrow A, 1 - A / \mli{volImg} \rightarrow N$ où $\mli{volImg}$ est le volume de $\mli{imgFiltered\{2\}}$. La différence de volume (spectre granulométrique) est calculée pour chaque itération $i$ comme suit : $\lvert N_{i + 1} - N_i \rvert$. \end{sloppypar} Nous définissons le rayon moyen des globules rouges ($\mli{RBCRadius}$) comme étant le rayon de l'élément structurant correspondant à la valeur maximale parmi le spectre granulométrique. Le rayon moyen du noyau des parasites est impossible à extraire des différences de volume : nous le calculons comme étant un cinquième de la taille des globules rouges : $\mli{RBCRadius} / 5 \rightarrow \mli{nucleiRadius}$. La figure \ref{fig:patternSpectrum} montre le graphique d'un spectre granulométrique. Dans ce cas $\mli{RBCRadius}$ est égal à 35 et $\mli{nucleiRadius}$ à 7. @@ -486,9 +496,9 @@ La teinte et la saturation sont seuillées à l'aide des valeurs $\mli{{\mu}H}$, \subsection{Détection des globules blancs} -Cette opération utilise l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Les globules blancs sont tout d'abord marqués à l'aide d'une érosion utilisant un élément structurant octogonal dont la taille correspond à 50 \% de celle des globules rouges ($0.5 \cdot \mli{RBCRadius}$). Puis reconstruction par dilatation des éléments colorés en utilisant le marqueur précédent permet de ne garder que les globules blancs. +Cette opération utilise l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Les globules blancs sont tout d'abord marqués à l'aide d'une érosion utilisant un élément structurant octogonal dont la taille correspond à 50 \% de celle des globules rouges ($0.5 \cdot \mli{RBCRadius}$). Puis une reconstruction par dilatation des éléments colorés en utilisant le marqueur précédent permet de ne garder que les globules blancs. -Finalement l'on lisse le résultat en réalisant une fermeture suivie d'une ouverture afin de fermer les petits trous qui pourraient rester. Le résultat est appelé $\mli{WBC}$ et est montré par la figure \ref{fig:WBC}. +Finalement nous lissons le résultat en réalisant une fermeture suivie d'une ouverture afin de fermer les petits trous qui pourraient rester. Le résultat est appelé $\mli{WBC}$ et est montré par la figure \ref{fig:WBC}. \begin{figure}[htbp] \centering @@ -515,7 +525,7 @@ Pour détecter les schizontes, nous utilisons l'image de marquage des éléments \caption{Un schizonte, sept sous-ensembles} \label{fig:schizonte} \end{subfigure} - \caption{Comparaison entre le nombre de sous-ensemble d'une cellule poly-infectée et d'un schizonte} + \caption{Comparaison entre le nombre de sous-ensembles d'une cellule poly-infectée et d'un schizonte} \label{fig:poly-et-schizonte} \end{figure} @@ -526,7 +536,7 @@ Pour savoir si deux sous-ensembles, $A$ et $B$, sont à une \emph{distance de Ha Le but ici est de séparer les globules rouges : nous utilisons l'image initiale ($\mli{imgRGB}$), le rayon des globules rouges ($\mli{RBCRadius}$), les globules blancs ($\mli{WBC}$) et les schizontes ($\mli{schizonts}$). Pour ce faire nous utilisons dans un premier temps une segmentation par ligne de partage des eaux à l'aide d'une transformée en distance. Nous séparons ensuite les segments en deux groupes, un groupe dont chaque élément représente une unique cellule et un autre groupe dont chaque élément représente un composé de cellules. Les cellules des éléments composés sont ensuite séparées : le résultat est uni aux cellules uniques et les éléments touchant les bords sont enlevés afin d'obtenir le résultat final. -Durant le processus, nous avons besoin de définir le rayon minimum d'un globule rouge ainsi que son aire. Le rayon minimum est défini comme étant 75~\% du rayon nominal, comme montré ci dessous. +Durant le processus, nous avons besoin de définir le rayon minimum d'un globule rouge ainsi que son aire. Le rayon minimum est défini comme étant 75~\% du rayon nominal, comme montré ci-dessous. {\setlength{\abovedisplayskip}{0pt} \begin{flalign*} @@ -563,7 +573,7 @@ La figure~\ref{fig:segmentation-histogramme-grayflat} montre l'histogramme de $\ \subsubsection{Calcul des distances et ligne de partage des eaux} -Après le seuillage des globules rouges, certaines régions comprennent deux ou plusieurs globules rouges qu'il faut séparer. Pour se faire nous appliquons une transformée en distance (\texttt{mmdist}) qui permet de donner une distance à chaque pixel blanc. Cette distance correspond à la plus courte distance euclidienne entre le pixel blanc et un pixel noir. Nous cherchons ensuite les maximaux régionaux de l'image en distance en utilisant un élément structurant octogonal dont le rayon est la moitié de $\mli{RBCRadius}$. Une dilatée d'un disque de rayon $\mli{RBCRadius} / 7$ est alors appliquée aux maximaux pour fusionner d'éventuelles zones très proches. L'algorithme de recherche de la ligne de partage des eaux est appliqué au négatif des distances en utilisant les maximaux dilatés comme marqueurs. Finalement l'intersection entre le négatif de la ligne de partage des eaux et de $\mli{thresholdOpened}$ correspond au résultat. La figure~\ref{fig:segmentation-watershed} montre les étapes de ce processus. +Après le seuillage des globules rouges, certaines régions comprennent deux ou plusieurs globules rouges qu'il faut séparer. Pour ce faire nous appliquons une transformée en distance (\texttt{mmdist}) qui permet de donner une distance à chaque pixel blanc. Cette distance correspond à la plus courte distance euclidienne entre le pixel blanc et un pixel noir. Nous cherchons ensuite les maximaux régionaux de l'image en distance en utilisant un élément structurant octogonal dont le rayon est la moitié de $\mli{RBCRadius}$. Une dilatée d'un disque de rayon $\mli{RBCRadius} / 7$ est alors appliquée aux maximaux pour fusionner d'éventuelles zones très proches. L'algorithme de recherche de la ligne de partage des eaux est appliqué au négatif des distances en utilisant les maximaux dilatés comme marqueurs. Finalement l'intersection entre le négatif de la ligne de partage des eaux et de $\mli{thresholdOpened}$ correspond au résultat. La figure~\ref{fig:segmentation-watershed} montre les étapes de ce processus. \begin{figure}[htbp] \centering @@ -589,13 +599,13 @@ Après le seuillage des globules rouges, certaines régions comprennent deux ou \end{figure} -\subsubsection{Identification et traitement des cellules composés} +\subsubsection{Identification et traitement des cellules composées} -Afin d'identifier les zones composées de plusieurs cellules nous calculons le rapport grand-axe / petit-axe pour chacune des zones : si le rapport d'une zone est plus grand ou égal à 1.3, alors la zone est défini comme étant composée. +Afin d'identifier les zones composées de plusieurs cellules nous calculons le rapport grand-axe / petit-axe pour chacune des zones : si le rapport d'une zone est plus grand ou égal à 1.3, alors la zone est définie comme étant composée. La figure~\ref{fig:segmentation-composites} montre le processus de séparation d'une zone composée de plusieurs cellules : ce processus est décrit ci-après. -Une ouverture à l'aide d'un disque de rayon $\mli{RBCRadiusMin}$ est appliquée à $\mli{gray}$ en utilisant les zones composées comme masque. Le résultat est montré par la figure \ref{fig:segmentation-composites-3}. Un gradient morphologique suivi d'une binarisation est réalisée pour obtenir l'image de la figure \ref{fig:segmentation-composites-4}. Les trous d'une aire plus petite ou égale à la moitié de $\mli{RBCRadiusMinArea}$ sont remplis avec une ouverture par aire puis un amincissement est appliqué. Nous remplissons ensuite les trous de l'amincissement et mettons à zéro les pixels marqués par celui-ci. Nous érodons le résultat afin d'éviter que les cellules composées ne touchent les cellules uniques lors de l'union qui aura lieu après. Finalement une ouverture par aire de valeur $\mli{RBCRadiusMinArea} / 5$ est effectuée pour enlever d'éventuels artefacts, comme montré par la figure~\ref{fig:soustraction-thinning}. +Une ouverture à l'aide d'un disque de rayon $\mli{RBCRadiusMin}$ est appliquée à $\mli{gray}$ en utilisant les zones composées comme masque. Le résultat est montré par la figure \ref{fig:segmentation-composites-3}. Un gradient morphologique suivi d'une binarisation sont réalisés pour obtenir l'image de la figure \ref{fig:segmentation-composites-4}. Les trous d'une aire plus petite ou égale à la moitié de $\mli{RBCRadiusMinArea}$ sont remplis avec une ouverture par aire puis un amincissement est appliqué. Nous remplissons ensuite les trous de l'amincissement et mettons à zéro les pixels marqués par celui-ci. Nous érodons le résultat afin d'éviter que les cellules composées ne touchent les cellules uniques lors de l'union qui aura lieu après. Finalement une ouverture par aire de valeur $\mli{RBCRadiusMinArea} / 5$ est effectuée pour enlever d'éventuels artefacts, comme montré par la figure~\ref{fig:soustraction-thinning}. % L'exemple provient de 1401063467-0007-schizonte.png (x: 900, y: 50). \begin{figure}[htbp] @@ -689,7 +699,7 @@ Les deux images $\mli{redCells}$ et $\mli{infectedRedCells}$ sont labellisées a \subsection{Qualité des images en entrée} -La première étape, décrite à la section~\ref{detection-parasites}, qui consiste à marquer les éléments colorés est très sensible à la qualité de l'image initiale. Suivant les réglages du microscope et du logiciel de capture associé, les éléments colorés peuvent ressortir avec une plus grande ou une plus faible saturation par rapport au fond et aux globules rouges. De plus la teinte des éléments colorés peuvent être similaire à la celle du fond : La figure~\ref{fig:problemes-teinte} montre une image dont la teinte est inexploitable. +La première étape, décrite à la section~\ref{detection-parasites} et qui consiste à marquer les éléments colorés, est très sensible à la qualité de l'image initiale. Suivant les réglages du microscope et du logiciel de capture associé, les éléments colorés peuvent ressortir avec une plus grande ou une plus faible saturation par rapport au fond et aux globules rouges. De plus la teinte des éléments colorés peut être similaire à la celle du fond : la figure~\ref{fig:problemes-teinte} montre une image dont la teinte est inexploitable. \begin{figure}[htbp] \centering @@ -707,7 +717,7 @@ La première étape, décrite à la section~\ref{detection-parasites}, qui consi \begin{subfigure}[t]{0.6\textwidth} \includegraphics[width=\linewidth]{img/histogram_probleme_teinte.eps} - \caption{Histogramme de la composante teinte de l'image complète. Les éléments colorés se situent entre l'intensité 190 et 200 (mis en évidence en rouge) et se confondent avec le fond} + \caption{Histogramme de la composante \emph{teinte} de l'image complète. Les éléments colorés se situent entre l'intensité 190 et 200 (mis en évidence en rouge) et se confondent avec le fond} \label{fig:problemes-teinte-histogramme} \end{subfigure} \caption{} @@ -717,7 +727,7 @@ La première étape, décrite à la section~\ref{detection-parasites}, qui consi \subsection{Méthode} -Les résultats se basent sur l'analyse d'un ensemble d'images provenant d'un même patient, le taux d'infection devrait être homogène entre les différentes images. Pour mesurer la qualité de nos détections, un dénombrement réalisé à la main est effectué, puis celui-ci est comparé à nos détections automatisées. La différence entre le résultat issu de la détection et la réalité est alors calculée et nommée \emph{erreur}. +Les résultats se basent sur l'analyse d'un ensemble d'images provenant d'un même patient : le taux d'infection devrait donc être homogène entre les différentes images. Pour mesurer la qualité de nos détections, un dénombrement réalisé à la main est effectué, puis celui-ci est comparé à nos détections automatisées. La différence entre le résultat issu de la détection et la réalité est alors calculée et nommée \emph{erreur}. Finalement, nous calculons les moyennes et les écarts types des erreurs, et des deux taux, celui de référence et celui détecté. @@ -744,7 +754,7 @@ Les tableaux \ref{tab:resultats60} et \ref{tab:resultats100} montrent les résul 0045 & 136 & 22 & 16.2~\% & 136 & 28 & 20.6~\% & 27.3~\% & 84 \\ 0046 & 127 & 29 & 22.8~\% & 128 & 27 & 21.1~\% & -7.6~\% & 85 \end{tabular} -\caption{Résultats sur les images réduite de 40~\%} +\caption{Résultats sur les images réduites de 40~\%} \label{tab:resultats60} \end{table} @@ -772,7 +782,7 @@ Les tableaux \ref{tab:resultats60} et \ref{tab:resultats100} montrent les résul \label{tab:resultats100} \end{table} -Le taux moyen d'infection réel est de 17.3~\%, le taux détecté avec des images réduites de 40~\% est de 18.2~\%, ces données sont présentées dans le tableau~\ref{tab:resultats}. +Le taux moyen d'infection réel est de 17.3~\% et le taux détecté avec des images réduites de 40~\% est de 18.2~\%. Ces données sont présentées dans le tableau~\ref{tab:resultats}. \begin{table}[htbp] \setlength{\tabcolsep}{3pt} @@ -780,9 +790,11 @@ Le taux moyen d'infection réel est de 17.3~\%, le taux détecté avec des image \begin{tabular}{ l | r | r | r } & Réel & 40~\% & 100~\% \\ \cline{2-4} Taux de cellules infectées moyen détecté & 17.3~\% & 18.2~\% & 17.9~\% \\ - Écart type sur le taux de cellules infectées moyen détecté & 2.9~\% & 3.1~\% & 3.0~\% \\ \cline{1-4} +% Écart type sur le taux de cellules infectées moyen détecté & 2.9~\% & 3.1~\% & 3.0~\% \\ + \cline{1-4} Erreur moyenne & & 5.3~\% & 3.7~\% \\ - Écart type sur l'erreur & & 11.9~\% & 11.4~\% \\ \cline{1-4} +% Écart type sur l'erreur & & 11.9~\% & 11.4~\% \\ + \cline{1-4} Temps moyen & & 78~s & 485~s \end{tabular} \caption{Résultats résumant les tables \ref{tab:resultats60} et \ref{tab:resultats100}. La colonne 40~\% correspond aux images réduites. La colonne 100~\% correspond aux images originales} @@ -790,12 +802,14 @@ Le taux moyen d'infection réel est de 17.3~\%, le taux détecté avec des image \end{table} - \section{Conclusion} - -* Travaux futurs ? -* Gain de vitesse et de précision par rapport aux méthodes actuellement utilisées. +Par la mise en pratique de la méthode décrite dans \emph{Analysis of infected blood cell images using morphological operators}\cite{DiRuberto-Analysis-infected-blood-morphological} nous avons pu démontrer sa pertinence et son efficacité. Quelques modifications ont dû être apportées telles que les critères de détection des schizontes ou encore l'utilisation d'une transformée en distance pour la définition des marqueurs de l'algorithme de la ligne de partage des eaux lors de la segmentation des globules rouges. + +De plus, une des difficultés majeures a été d'obtenir une image initiale ayant des composantes \emph{teinte} et \emph{saturation} satisfaisantes. Cette première étape de détection des éléments colorés reste très dépendante de la qualité et des caractéristiques de l'image d'entrée. + +Néanmoins, une fois de bons réglages effectués sur le système de capture d'image du microscope, les résultats du processus, en terme de taux d'infection, correspondent à ce qui est attendu. Sur le cas analysé (n°1412151257), à partir de douze captures, nous obtenons une différence de taux de 5.3~\% pour les images réduites et de 3.7~\% pour les images non-réduites. + \bibliographystyle{plain} \bibliography{main}