00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include <stdint.h>
00045 #include <vector>
00046 #include "fast.hpp"
00047
00048 using namespace std;
00049
00050 namespace fovis
00051 {
00052
00053 struct Point
00054 {
00055 int x;
00056 int y;
00057 Point() {}
00058 Point(int x_, int y_) : x(x_), y(y_) {}
00059 };
00060
00061 static int fast9CornerScore(const unsigned char* p, const int pixel[], int bstart)
00062 {
00063 int bmin = bstart;
00064 int bmax = 255;
00065 int b = (bmax + bmin)/2;
00066
00067
00068 for(;;)
00069 {
00070 int cb = *p + b;
00071 int c_b= *p - b;
00072
00073 if( p[pixel[0]] > cb)
00074 if( p[pixel[1]] > cb)
00075 if( p[pixel[2]] > cb)
00076 if( p[pixel[3]] > cb)
00077 if( p[pixel[4]] > cb)
00078 if( p[pixel[5]] > cb)
00079 if( p[pixel[6]] > cb)
00080 if( p[pixel[7]] > cb)
00081 if( p[pixel[8]] > cb)
00082 goto is_a_corner;
00083 else
00084 if( p[pixel[15]] > cb)
00085 goto is_a_corner;
00086 else
00087 goto is_not_a_corner;
00088 else if( p[pixel[7]] < c_b)
00089 if( p[pixel[14]] > cb)
00090 if( p[pixel[15]] > cb)
00091 goto is_a_corner;
00092 else
00093 goto is_not_a_corner;
00094 else if( p[pixel[14]] < c_b)
00095 if( p[pixel[8]] < c_b)
00096 if( p[pixel[9]] < c_b)
00097 if( p[pixel[10]] < c_b)
00098 if( p[pixel[11]] < c_b)
00099 if( p[pixel[12]] < c_b)
00100 if( p[pixel[13]] < c_b)
00101 if( p[pixel[15]] < c_b)
00102 goto is_a_corner;
00103 else
00104 goto is_not_a_corner;
00105 else
00106 goto is_not_a_corner;
00107 else
00108 goto is_not_a_corner;
00109 else
00110 goto is_not_a_corner;
00111 else
00112 goto is_not_a_corner;
00113 else
00114 goto is_not_a_corner;
00115 else
00116 goto is_not_a_corner;
00117 else
00118 goto is_not_a_corner;
00119 else
00120 if( p[pixel[14]] > cb)
00121 if( p[pixel[15]] > cb)
00122 goto is_a_corner;
00123 else
00124 goto is_not_a_corner;
00125 else
00126 goto is_not_a_corner;
00127 else if( p[pixel[6]] < c_b)
00128 if( p[pixel[15]] > cb)
00129 if( p[pixel[13]] > cb)
00130 if( p[pixel[14]] > cb)
00131 goto is_a_corner;
00132 else
00133 goto is_not_a_corner;
00134 else if( p[pixel[13]] < c_b)
00135 if( p[pixel[7]] < c_b)
00136 if( p[pixel[8]] < c_b)
00137 if( p[pixel[9]] < c_b)
00138 if( p[pixel[10]] < c_b)
00139 if( p[pixel[11]] < c_b)
00140 if( p[pixel[12]] < c_b)
00141 if( p[pixel[14]] < c_b)
00142 goto is_a_corner;
00143 else
00144 goto is_not_a_corner;
00145 else
00146 goto is_not_a_corner;
00147 else
00148 goto is_not_a_corner;
00149 else
00150 goto is_not_a_corner;
00151 else
00152 goto is_not_a_corner;
00153 else
00154 goto is_not_a_corner;
00155 else
00156 goto is_not_a_corner;
00157 else
00158 goto is_not_a_corner;
00159 else
00160 if( p[pixel[7]] < c_b)
00161 if( p[pixel[8]] < c_b)
00162 if( p[pixel[9]] < c_b)
00163 if( p[pixel[10]] < c_b)
00164 if( p[pixel[11]] < c_b)
00165 if( p[pixel[12]] < c_b)
00166 if( p[pixel[13]] < c_b)
00167 if( p[pixel[14]] < c_b)
00168 goto is_a_corner;
00169 else
00170 goto is_not_a_corner;
00171 else
00172 goto is_not_a_corner;
00173 else
00174 goto is_not_a_corner;
00175 else
00176 goto is_not_a_corner;
00177 else
00178 goto is_not_a_corner;
00179 else
00180 goto is_not_a_corner;
00181 else
00182 goto is_not_a_corner;
00183 else
00184 goto is_not_a_corner;
00185 else
00186 if( p[pixel[13]] > cb)
00187 if( p[pixel[14]] > cb)
00188 if( p[pixel[15]] > cb)
00189 goto is_a_corner;
00190 else
00191 goto is_not_a_corner;
00192 else
00193 goto is_not_a_corner;
00194 else if( p[pixel[13]] < c_b)
00195 if( p[pixel[7]] < c_b)
00196 if( p[pixel[8]] < c_b)
00197 if( p[pixel[9]] < c_b)
00198 if( p[pixel[10]] < c_b)
00199 if( p[pixel[11]] < c_b)
00200 if( p[pixel[12]] < c_b)
00201 if( p[pixel[14]] < c_b)
00202 if( p[pixel[15]] < c_b)
00203 goto is_a_corner;
00204 else
00205 goto is_not_a_corner;
00206 else
00207 goto is_not_a_corner;
00208 else
00209 goto is_not_a_corner;
00210 else
00211 goto is_not_a_corner;
00212 else
00213 goto is_not_a_corner;
00214 else
00215 goto is_not_a_corner;
00216 else
00217 goto is_not_a_corner;
00218 else
00219 goto is_not_a_corner;
00220 else
00221 goto is_not_a_corner;
00222 else if( p[pixel[5]] < c_b)
00223 if( p[pixel[14]] > cb)
00224 if( p[pixel[12]] > cb)
00225 if( p[pixel[13]] > cb)
00226 if( p[pixel[15]] > cb)
00227 goto is_a_corner;
00228 else
00229 if( p[pixel[6]] > cb)
00230 if( p[pixel[7]] > cb)
00231 if( p[pixel[8]] > cb)
00232 if( p[pixel[9]] > cb)
00233 if( p[pixel[10]] > cb)
00234 if( p[pixel[11]] > cb)
00235 goto is_a_corner;
00236 else
00237 goto is_not_a_corner;
00238 else
00239 goto is_not_a_corner;
00240 else
00241 goto is_not_a_corner;
00242 else
00243 goto is_not_a_corner;
00244 else
00245 goto is_not_a_corner;
00246 else
00247 goto is_not_a_corner;
00248 else
00249 goto is_not_a_corner;
00250 else if( p[pixel[12]] < c_b)
00251 if( p[pixel[6]] < c_b)
00252 if( p[pixel[7]] < c_b)
00253 if( p[pixel[8]] < c_b)
00254 if( p[pixel[9]] < c_b)
00255 if( p[pixel[10]] < c_b)
00256 if( p[pixel[11]] < c_b)
00257 if( p[pixel[13]] < c_b)
00258 goto is_a_corner;
00259 else
00260 goto is_not_a_corner;
00261 else
00262 goto is_not_a_corner;
00263 else
00264 goto is_not_a_corner;
00265 else
00266 goto is_not_a_corner;
00267 else
00268 goto is_not_a_corner;
00269 else
00270 goto is_not_a_corner;
00271 else
00272 goto is_not_a_corner;
00273 else
00274 goto is_not_a_corner;
00275 else if( p[pixel[14]] < c_b)
00276 if( p[pixel[7]] < c_b)
00277 if( p[pixel[8]] < c_b)
00278 if( p[pixel[9]] < c_b)
00279 if( p[pixel[10]] < c_b)
00280 if( p[pixel[11]] < c_b)
00281 if( p[pixel[12]] < c_b)
00282 if( p[pixel[13]] < c_b)
00283 if( p[pixel[6]] < c_b)
00284 goto is_a_corner;
00285 else
00286 if( p[pixel[15]] < c_b)
00287 goto is_a_corner;
00288 else
00289 goto is_not_a_corner;
00290 else
00291 goto is_not_a_corner;
00292 else
00293 goto is_not_a_corner;
00294 else
00295 goto is_not_a_corner;
00296 else
00297 goto is_not_a_corner;
00298 else
00299 goto is_not_a_corner;
00300 else
00301 goto is_not_a_corner;
00302 else
00303 goto is_not_a_corner;
00304 else
00305 if( p[pixel[6]] < c_b)
00306 if( p[pixel[7]] < c_b)
00307 if( p[pixel[8]] < c_b)
00308 if( p[pixel[9]] < c_b)
00309 if( p[pixel[10]] < c_b)
00310 if( p[pixel[11]] < c_b)
00311 if( p[pixel[12]] < c_b)
00312 if( p[pixel[13]] < c_b)
00313 goto is_a_corner;
00314 else
00315 goto is_not_a_corner;
00316 else
00317 goto is_not_a_corner;
00318 else
00319 goto is_not_a_corner;
00320 else
00321 goto is_not_a_corner;
00322 else
00323 goto is_not_a_corner;
00324 else
00325 goto is_not_a_corner;
00326 else
00327 goto is_not_a_corner;
00328 else
00329 goto is_not_a_corner;
00330 else
00331 if( p[pixel[12]] > cb)
00332 if( p[pixel[13]] > cb)
00333 if( p[pixel[14]] > cb)
00334 if( p[pixel[15]] > cb)
00335 goto is_a_corner;
00336 else
00337 if( p[pixel[6]] > cb)
00338 if( p[pixel[7]] > cb)
00339 if( p[pixel[8]] > cb)
00340 if( p[pixel[9]] > cb)
00341 if( p[pixel[10]] > cb)
00342 if( p[pixel[11]] > cb)
00343 goto is_a_corner;
00344 else
00345 goto is_not_a_corner;
00346 else
00347 goto is_not_a_corner;
00348 else
00349 goto is_not_a_corner;
00350 else
00351 goto is_not_a_corner;
00352 else
00353 goto is_not_a_corner;
00354 else
00355 goto is_not_a_corner;
00356 else
00357 goto is_not_a_corner;
00358 else
00359 goto is_not_a_corner;
00360 else if( p[pixel[12]] < c_b)
00361 if( p[pixel[7]] < c_b)
00362 if( p[pixel[8]] < c_b)
00363 if( p[pixel[9]] < c_b)
00364 if( p[pixel[10]] < c_b)
00365 if( p[pixel[11]] < c_b)
00366 if( p[pixel[13]] < c_b)
00367 if( p[pixel[14]] < c_b)
00368 if( p[pixel[6]] < c_b)
00369 goto is_a_corner;
00370 else
00371 if( p[pixel[15]] < c_b)
00372 goto is_a_corner;
00373 else
00374 goto is_not_a_corner;
00375 else
00376 goto is_not_a_corner;
00377 else
00378 goto is_not_a_corner;
00379 else
00380 goto is_not_a_corner;
00381 else
00382 goto is_not_a_corner;
00383 else
00384 goto is_not_a_corner;
00385 else
00386 goto is_not_a_corner;
00387 else
00388 goto is_not_a_corner;
00389 else
00390 goto is_not_a_corner;
00391 else if( p[pixel[4]] < c_b)
00392 if( p[pixel[13]] > cb)
00393 if( p[pixel[11]] > cb)
00394 if( p[pixel[12]] > cb)
00395 if( p[pixel[14]] > cb)
00396 if( p[pixel[15]] > cb)
00397 goto is_a_corner;
00398 else
00399 if( p[pixel[6]] > cb)
00400 if( p[pixel[7]] > cb)
00401 if( p[pixel[8]] > cb)
00402 if( p[pixel[9]] > cb)
00403 if( p[pixel[10]] > cb)
00404 goto is_a_corner;
00405 else
00406 goto is_not_a_corner;
00407 else
00408 goto is_not_a_corner;
00409 else
00410 goto is_not_a_corner;
00411 else
00412 goto is_not_a_corner;
00413 else
00414 goto is_not_a_corner;
00415 else
00416 if( p[pixel[5]] > cb)
00417 if( p[pixel[6]] > cb)
00418 if( p[pixel[7]] > cb)
00419 if( p[pixel[8]] > cb)
00420 if( p[pixel[9]] > cb)
00421 if( p[pixel[10]] > cb)
00422 goto is_a_corner;
00423 else
00424 goto is_not_a_corner;
00425 else
00426 goto is_not_a_corner;
00427 else
00428 goto is_not_a_corner;
00429 else
00430 goto is_not_a_corner;
00431 else
00432 goto is_not_a_corner;
00433 else
00434 goto is_not_a_corner;
00435 else
00436 goto is_not_a_corner;
00437 else if( p[pixel[11]] < c_b)
00438 if( p[pixel[5]] < c_b)
00439 if( p[pixel[6]] < c_b)
00440 if( p[pixel[7]] < c_b)
00441 if( p[pixel[8]] < c_b)
00442 if( p[pixel[9]] < c_b)
00443 if( p[pixel[10]] < c_b)
00444 if( p[pixel[12]] < c_b)
00445 goto is_a_corner;
00446 else
00447 goto is_not_a_corner;
00448 else
00449 goto is_not_a_corner;
00450 else
00451 goto is_not_a_corner;
00452 else
00453 goto is_not_a_corner;
00454 else
00455 goto is_not_a_corner;
00456 else
00457 goto is_not_a_corner;
00458 else
00459 goto is_not_a_corner;
00460 else
00461 goto is_not_a_corner;
00462 else if( p[pixel[13]] < c_b)
00463 if( p[pixel[7]] < c_b)
00464 if( p[pixel[8]] < c_b)
00465 if( p[pixel[9]] < c_b)
00466 if( p[pixel[10]] < c_b)
00467 if( p[pixel[11]] < c_b)
00468 if( p[pixel[12]] < c_b)
00469 if( p[pixel[6]] < c_b)
00470 if( p[pixel[5]] < c_b)
00471 goto is_a_corner;
00472 else
00473 if( p[pixel[14]] < c_b)
00474 goto is_a_corner;
00475 else
00476 goto is_not_a_corner;
00477 else
00478 if( p[pixel[14]] < c_b)
00479 if( p[pixel[15]] < c_b)
00480 goto is_a_corner;
00481 else
00482 goto is_not_a_corner;
00483 else
00484 goto is_not_a_corner;
00485 else
00486 goto is_not_a_corner;
00487 else
00488 goto is_not_a_corner;
00489 else
00490 goto is_not_a_corner;
00491 else
00492 goto is_not_a_corner;
00493 else
00494 goto is_not_a_corner;
00495 else
00496 goto is_not_a_corner;
00497 else
00498 if( p[pixel[5]] < c_b)
00499 if( p[pixel[6]] < c_b)
00500 if( p[pixel[7]] < c_b)
00501 if( p[pixel[8]] < c_b)
00502 if( p[pixel[9]] < c_b)
00503 if( p[pixel[10]] < c_b)
00504 if( p[pixel[11]] < c_b)
00505 if( p[pixel[12]] < c_b)
00506 goto is_a_corner;
00507 else
00508 goto is_not_a_corner;
00509 else
00510 goto is_not_a_corner;
00511 else
00512 goto is_not_a_corner;
00513 else
00514 goto is_not_a_corner;
00515 else
00516 goto is_not_a_corner;
00517 else
00518 goto is_not_a_corner;
00519 else
00520 goto is_not_a_corner;
00521 else
00522 goto is_not_a_corner;
00523 else
00524 if( p[pixel[11]] > cb)
00525 if( p[pixel[12]] > cb)
00526 if( p[pixel[13]] > cb)
00527 if( p[pixel[14]] > cb)
00528 if( p[pixel[15]] > cb)
00529 goto is_a_corner;
00530 else
00531 if( p[pixel[6]] > cb)
00532 if( p[pixel[7]] > cb)
00533 if( p[pixel[8]] > cb)
00534 if( p[pixel[9]] > cb)
00535 if( p[pixel[10]] > cb)
00536 goto is_a_corner;
00537 else
00538 goto is_not_a_corner;
00539 else
00540 goto is_not_a_corner;
00541 else
00542 goto is_not_a_corner;
00543 else
00544 goto is_not_a_corner;
00545 else
00546 goto is_not_a_corner;
00547 else
00548 if( p[pixel[5]] > cb)
00549 if( p[pixel[6]] > cb)
00550 if( p[pixel[7]] > cb)
00551 if( p[pixel[8]] > cb)
00552 if( p[pixel[9]] > cb)
00553 if( p[pixel[10]] > cb)
00554 goto is_a_corner;
00555 else
00556 goto is_not_a_corner;
00557 else
00558 goto is_not_a_corner;
00559 else
00560 goto is_not_a_corner;
00561 else
00562 goto is_not_a_corner;
00563 else
00564 goto is_not_a_corner;
00565 else
00566 goto is_not_a_corner;
00567 else
00568 goto is_not_a_corner;
00569 else
00570 goto is_not_a_corner;
00571 else if( p[pixel[11]] < c_b)
00572 if( p[pixel[7]] < c_b)
00573 if( p[pixel[8]] < c_b)
00574 if( p[pixel[9]] < c_b)
00575 if( p[pixel[10]] < c_b)
00576 if( p[pixel[12]] < c_b)
00577 if( p[pixel[13]] < c_b)
00578 if( p[pixel[6]] < c_b)
00579 if( p[pixel[5]] < c_b)
00580 goto is_a_corner;
00581 else
00582 if( p[pixel[14]] < c_b)
00583 goto is_a_corner;
00584 else
00585 goto is_not_a_corner;
00586 else
00587 if( p[pixel[14]] < c_b)
00588 if( p[pixel[15]] < c_b)
00589 goto is_a_corner;
00590 else
00591 goto is_not_a_corner;
00592 else
00593 goto is_not_a_corner;
00594 else
00595 goto is_not_a_corner;
00596 else
00597 goto is_not_a_corner;
00598 else
00599 goto is_not_a_corner;
00600 else
00601 goto is_not_a_corner;
00602 else
00603 goto is_not_a_corner;
00604 else
00605 goto is_not_a_corner;
00606 else
00607 goto is_not_a_corner;
00608 else if( p[pixel[3]] < c_b)
00609 if( p[pixel[10]] > cb)
00610 if( p[pixel[11]] > cb)
00611 if( p[pixel[12]] > cb)
00612 if( p[pixel[13]] > cb)
00613 if( p[pixel[14]] > cb)
00614 if( p[pixel[15]] > cb)
00615 goto is_a_corner;
00616 else
00617 if( p[pixel[6]] > cb)
00618 if( p[pixel[7]] > cb)
00619 if( p[pixel[8]] > cb)
00620 if( p[pixel[9]] > cb)
00621 goto is_a_corner;
00622 else
00623 goto is_not_a_corner;
00624 else
00625 goto is_not_a_corner;
00626 else
00627 goto is_not_a_corner;
00628 else
00629 goto is_not_a_corner;
00630 else
00631 if( p[pixel[5]] > cb)
00632 if( p[pixel[6]] > cb)
00633 if( p[pixel[7]] > cb)
00634 if( p[pixel[8]] > cb)
00635 if( p[pixel[9]] > cb)
00636 goto is_a_corner;
00637 else
00638 goto is_not_a_corner;
00639 else
00640 goto is_not_a_corner;
00641 else
00642 goto is_not_a_corner;
00643 else
00644 goto is_not_a_corner;
00645 else
00646 goto is_not_a_corner;
00647 else
00648 if( p[pixel[4]] > cb)
00649 if( p[pixel[5]] > cb)
00650 if( p[pixel[6]] > cb)
00651 if( p[pixel[7]] > cb)
00652 if( p[pixel[8]] > cb)
00653 if( p[pixel[9]] > cb)
00654 goto is_a_corner;
00655 else
00656 goto is_not_a_corner;
00657 else
00658 goto is_not_a_corner;
00659 else
00660 goto is_not_a_corner;
00661 else
00662 goto is_not_a_corner;
00663 else
00664 goto is_not_a_corner;
00665 else
00666 goto is_not_a_corner;
00667 else
00668 goto is_not_a_corner;
00669 else
00670 goto is_not_a_corner;
00671 else if( p[pixel[10]] < c_b)
00672 if( p[pixel[7]] < c_b)
00673 if( p[pixel[8]] < c_b)
00674 if( p[pixel[9]] < c_b)
00675 if( p[pixel[11]] < c_b)
00676 if( p[pixel[6]] < c_b)
00677 if( p[pixel[5]] < c_b)
00678 if( p[pixel[4]] < c_b)
00679 goto is_a_corner;
00680 else
00681 if( p[pixel[12]] < c_b)
00682 if( p[pixel[13]] < c_b)
00683 goto is_a_corner;
00684 else
00685 goto is_not_a_corner;
00686 else
00687 goto is_not_a_corner;
00688 else
00689 if( p[pixel[12]] < c_b)
00690 if( p[pixel[13]] < c_b)
00691 if( p[pixel[14]] < c_b)
00692 goto is_a_corner;
00693 else
00694 goto is_not_a_corner;
00695 else
00696 goto is_not_a_corner;
00697 else
00698 goto is_not_a_corner;
00699 else
00700 if( p[pixel[12]] < c_b)
00701 if( p[pixel[13]] < c_b)
00702 if( p[pixel[14]] < c_b)
00703 if( p[pixel[15]] < c_b)
00704 goto is_a_corner;
00705 else
00706 goto is_not_a_corner;
00707 else
00708 goto is_not_a_corner;
00709 else
00710 goto is_not_a_corner;
00711 else
00712 goto is_not_a_corner;
00713 else
00714 goto is_not_a_corner;
00715 else
00716 goto is_not_a_corner;
00717 else
00718 goto is_not_a_corner;
00719 else
00720 goto is_not_a_corner;
00721 else
00722 goto is_not_a_corner;
00723 else
00724 if( p[pixel[10]] > cb)
00725 if( p[pixel[11]] > cb)
00726 if( p[pixel[12]] > cb)
00727 if( p[pixel[13]] > cb)
00728 if( p[pixel[14]] > cb)
00729 if( p[pixel[15]] > cb)
00730 goto is_a_corner;
00731 else
00732 if( p[pixel[6]] > cb)
00733 if( p[pixel[7]] > cb)
00734 if( p[pixel[8]] > cb)
00735 if( p[pixel[9]] > cb)
00736 goto is_a_corner;
00737 else
00738 goto is_not_a_corner;
00739 else
00740 goto is_not_a_corner;
00741 else
00742 goto is_not_a_corner;
00743 else
00744 goto is_not_a_corner;
00745 else
00746 if( p[pixel[5]] > cb)
00747 if( p[pixel[6]] > cb)
00748 if( p[pixel[7]] > cb)
00749 if( p[pixel[8]] > cb)
00750 if( p[pixel[9]] > cb)
00751 goto is_a_corner;
00752 else
00753 goto is_not_a_corner;
00754 else
00755 goto is_not_a_corner;
00756 else
00757 goto is_not_a_corner;
00758 else
00759 goto is_not_a_corner;
00760 else
00761 goto is_not_a_corner;
00762 else
00763 if( p[pixel[4]] > cb)
00764 if( p[pixel[5]] > cb)
00765 if( p[pixel[6]] > cb)
00766 if( p[pixel[7]] > cb)
00767 if( p[pixel[8]] > cb)
00768 if( p[pixel[9]] > cb)
00769 goto is_a_corner;
00770 else
00771 goto is_not_a_corner;
00772 else
00773 goto is_not_a_corner;
00774 else
00775 goto is_not_a_corner;
00776 else
00777 goto is_not_a_corner;
00778 else
00779 goto is_not_a_corner;
00780 else
00781 goto is_not_a_corner;
00782 else
00783 goto is_not_a_corner;
00784 else
00785 goto is_not_a_corner;
00786 else if( p[pixel[10]] < c_b)
00787 if( p[pixel[7]] < c_b)
00788 if( p[pixel[8]] < c_b)
00789 if( p[pixel[9]] < c_b)
00790 if( p[pixel[11]] < c_b)
00791 if( p[pixel[12]] < c_b)
00792 if( p[pixel[6]] < c_b)
00793 if( p[pixel[5]] < c_b)
00794 if( p[pixel[4]] < c_b)
00795 goto is_a_corner;
00796 else
00797 if( p[pixel[13]] < c_b)
00798 goto is_a_corner;
00799 else
00800 goto is_not_a_corner;
00801 else
00802 if( p[pixel[13]] < c_b)
00803 if( p[pixel[14]] < c_b)
00804 goto is_a_corner;
00805 else
00806 goto is_not_a_corner;
00807 else
00808 goto is_not_a_corner;
00809 else
00810 if( p[pixel[13]] < c_b)
00811 if( p[pixel[14]] < c_b)
00812 if( p[pixel[15]] < c_b)
00813 goto is_a_corner;
00814 else
00815 goto is_not_a_corner;
00816 else
00817 goto is_not_a_corner;
00818 else
00819 goto is_not_a_corner;
00820 else
00821 goto is_not_a_corner;
00822 else
00823 goto is_not_a_corner;
00824 else
00825 goto is_not_a_corner;
00826 else
00827 goto is_not_a_corner;
00828 else
00829 goto is_not_a_corner;
00830 else
00831 goto is_not_a_corner;
00832 else if( p[pixel[2]] < c_b)
00833 if( p[pixel[9]] > cb)
00834 if( p[pixel[10]] > cb)
00835 if( p[pixel[11]] > cb)
00836 if( p[pixel[12]] > cb)
00837 if( p[pixel[13]] > cb)
00838 if( p[pixel[14]] > cb)
00839 if( p[pixel[15]] > cb)
00840 goto is_a_corner;
00841 else
00842 if( p[pixel[6]] > cb)
00843 if( p[pixel[7]] > cb)
00844 if( p[pixel[8]] > cb)
00845 goto is_a_corner;
00846 else
00847 goto is_not_a_corner;
00848 else
00849 goto is_not_a_corner;
00850 else
00851 goto is_not_a_corner;
00852 else
00853 if( p[pixel[5]] > cb)
00854 if( p[pixel[6]] > cb)
00855 if( p[pixel[7]] > cb)
00856 if( p[pixel[8]] > cb)
00857 goto is_a_corner;
00858 else
00859 goto is_not_a_corner;
00860 else
00861 goto is_not_a_corner;
00862 else
00863 goto is_not_a_corner;
00864 else
00865 goto is_not_a_corner;
00866 else
00867 if( p[pixel[4]] > cb)
00868 if( p[pixel[5]] > cb)
00869 if( p[pixel[6]] > cb)
00870 if( p[pixel[7]] > cb)
00871 if( p[pixel[8]] > cb)
00872 goto is_a_corner;
00873 else
00874 goto is_not_a_corner;
00875 else
00876 goto is_not_a_corner;
00877 else
00878 goto is_not_a_corner;
00879 else
00880 goto is_not_a_corner;
00881 else
00882 goto is_not_a_corner;
00883 else
00884 if( p[pixel[3]] > cb)
00885 if( p[pixel[4]] > cb)
00886 if( p[pixel[5]] > cb)
00887 if( p[pixel[6]] > cb)
00888 if( p[pixel[7]] > cb)
00889 if( p[pixel[8]] > cb)
00890 goto is_a_corner;
00891 else
00892 goto is_not_a_corner;
00893 else
00894 goto is_not_a_corner;
00895 else
00896 goto is_not_a_corner;
00897 else
00898 goto is_not_a_corner;
00899 else
00900 goto is_not_a_corner;
00901 else
00902 goto is_not_a_corner;
00903 else
00904 goto is_not_a_corner;
00905 else
00906 goto is_not_a_corner;
00907 else if( p[pixel[9]] < c_b)
00908 if( p[pixel[7]] < c_b)
00909 if( p[pixel[8]] < c_b)
00910 if( p[pixel[10]] < c_b)
00911 if( p[pixel[6]] < c_b)
00912 if( p[pixel[5]] < c_b)
00913 if( p[pixel[4]] < c_b)
00914 if( p[pixel[3]] < c_b)
00915 goto is_a_corner;
00916 else
00917 if( p[pixel[11]] < c_b)
00918 if( p[pixel[12]] < c_b)
00919 goto is_a_corner;
00920 else
00921 goto is_not_a_corner;
00922 else
00923 goto is_not_a_corner;
00924 else
00925 if( p[pixel[11]] < c_b)
00926 if( p[pixel[12]] < c_b)
00927 if( p[pixel[13]] < c_b)
00928 goto is_a_corner;
00929 else
00930 goto is_not_a_corner;
00931 else
00932 goto is_not_a_corner;
00933 else
00934 goto is_not_a_corner;
00935 else
00936 if( p[pixel[11]] < c_b)
00937 if( p[pixel[12]] < c_b)
00938 if( p[pixel[13]] < c_b)
00939 if( p[pixel[14]] < c_b)
00940 goto is_a_corner;
00941 else
00942 goto is_not_a_corner;
00943 else
00944 goto is_not_a_corner;
00945 else
00946 goto is_not_a_corner;
00947 else
00948 goto is_not_a_corner;
00949 else
00950 if( p[pixel[11]] < c_b)
00951 if( p[pixel[12]] < c_b)
00952 if( p[pixel[13]] < c_b)
00953 if( p[pixel[14]] < c_b)
00954 if( p[pixel[15]] < c_b)
00955 goto is_a_corner;
00956 else
00957 goto is_not_a_corner;
00958 else
00959 goto is_not_a_corner;
00960 else
00961 goto is_not_a_corner;
00962 else
00963 goto is_not_a_corner;
00964 else
00965 goto is_not_a_corner;
00966 else
00967 goto is_not_a_corner;
00968 else
00969 goto is_not_a_corner;
00970 else
00971 goto is_not_a_corner;
00972 else
00973 goto is_not_a_corner;
00974 else
00975 if( p[pixel[9]] > cb)
00976 if( p[pixel[10]] > cb)
00977 if( p[pixel[11]] > cb)
00978 if( p[pixel[12]] > cb)
00979 if( p[pixel[13]] > cb)
00980 if( p[pixel[14]] > cb)
00981 if( p[pixel[15]] > cb)
00982 goto is_a_corner;
00983 else
00984 if( p[pixel[6]] > cb)
00985 if( p[pixel[7]] > cb)
00986 if( p[pixel[8]] > cb)
00987 goto is_a_corner;
00988 else
00989 goto is_not_a_corner;
00990 else
00991 goto is_not_a_corner;
00992 else
00993 goto is_not_a_corner;
00994 else
00995 if( p[pixel[5]] > cb)
00996 if( p[pixel[6]] > cb)
00997 if( p[pixel[7]] > cb)
00998 if( p[pixel[8]] > cb)
00999 goto is_a_corner;
01000 else
01001 goto is_not_a_corner;
01002 else
01003 goto is_not_a_corner;
01004 else
01005 goto is_not_a_corner;
01006 else
01007 goto is_not_a_corner;
01008 else
01009 if( p[pixel[4]] > cb)
01010 if( p[pixel[5]] > cb)
01011 if( p[pixel[6]] > cb)
01012 if( p[pixel[7]] > cb)
01013 if( p[pixel[8]] > cb)
01014 goto is_a_corner;
01015 else
01016 goto is_not_a_corner;
01017 else
01018 goto is_not_a_corner;
01019 else
01020 goto is_not_a_corner;
01021 else
01022 goto is_not_a_corner;
01023 else
01024 goto is_not_a_corner;
01025 else
01026 if( p[pixel[3]] > cb)
01027 if( p[pixel[4]] > cb)
01028 if( p[pixel[5]] > cb)
01029 if( p[pixel[6]] > cb)
01030 if( p[pixel[7]] > cb)
01031 if( p[pixel[8]] > cb)
01032 goto is_a_corner;
01033 else
01034 goto is_not_a_corner;
01035 else
01036 goto is_not_a_corner;
01037 else
01038 goto is_not_a_corner;
01039 else
01040 goto is_not_a_corner;
01041 else
01042 goto is_not_a_corner;
01043 else
01044 goto is_not_a_corner;
01045 else
01046 goto is_not_a_corner;
01047 else
01048 goto is_not_a_corner;
01049 else if( p[pixel[9]] < c_b)
01050 if( p[pixel[7]] < c_b)
01051 if( p[pixel[8]] < c_b)
01052 if( p[pixel[10]] < c_b)
01053 if( p[pixel[11]] < c_b)
01054 if( p[pixel[6]] < c_b)
01055 if( p[pixel[5]] < c_b)
01056 if( p[pixel[4]] < c_b)
01057 if( p[pixel[3]] < c_b)
01058 goto is_a_corner;
01059 else
01060 if( p[pixel[12]] < c_b)
01061 goto is_a_corner;
01062 else
01063 goto is_not_a_corner;
01064 else
01065 if( p[pixel[12]] < c_b)
01066 if( p[pixel[13]] < c_b)
01067 goto is_a_corner;
01068 else
01069 goto is_not_a_corner;
01070 else
01071 goto is_not_a_corner;
01072 else
01073 if( p[pixel[12]] < c_b)
01074 if( p[pixel[13]] < c_b)
01075 if( p[pixel[14]] < c_b)
01076 goto is_a_corner;
01077 else
01078 goto is_not_a_corner;
01079 else
01080 goto is_not_a_corner;
01081 else
01082 goto is_not_a_corner;
01083 else
01084 if( p[pixel[12]] < c_b)
01085 if( p[pixel[13]] < c_b)
01086 if( p[pixel[14]] < c_b)
01087 if( p[pixel[15]] < c_b)
01088 goto is_a_corner;
01089 else
01090 goto is_not_a_corner;
01091 else
01092 goto is_not_a_corner;
01093 else
01094 goto is_not_a_corner;
01095 else
01096 goto is_not_a_corner;
01097 else
01098 goto is_not_a_corner;
01099 else
01100 goto is_not_a_corner;
01101 else
01102 goto is_not_a_corner;
01103 else
01104 goto is_not_a_corner;
01105 else
01106 goto is_not_a_corner;
01107 else if( p[pixel[1]] < c_b)
01108 if( p[pixel[8]] > cb)
01109 if( p[pixel[9]] > cb)
01110 if( p[pixel[10]] > cb)
01111 if( p[pixel[11]] > cb)
01112 if( p[pixel[12]] > cb)
01113 if( p[pixel[13]] > cb)
01114 if( p[pixel[14]] > cb)
01115 if( p[pixel[15]] > cb)
01116 goto is_a_corner;
01117 else
01118 if( p[pixel[6]] > cb)
01119 if( p[pixel[7]] > cb)
01120 goto is_a_corner;
01121 else
01122 goto is_not_a_corner;
01123 else
01124 goto is_not_a_corner;
01125 else
01126 if( p[pixel[5]] > cb)
01127 if( p[pixel[6]] > cb)
01128 if( p[pixel[7]] > cb)
01129 goto is_a_corner;
01130 else
01131 goto is_not_a_corner;
01132 else
01133 goto is_not_a_corner;
01134 else
01135 goto is_not_a_corner;
01136 else
01137 if( p[pixel[4]] > cb)
01138 if( p[pixel[5]] > cb)
01139 if( p[pixel[6]] > cb)
01140 if( p[pixel[7]] > cb)
01141 goto is_a_corner;
01142 else
01143 goto is_not_a_corner;
01144 else
01145 goto is_not_a_corner;
01146 else
01147 goto is_not_a_corner;
01148 else
01149 goto is_not_a_corner;
01150 else
01151 if( p[pixel[3]] > cb)
01152 if( p[pixel[4]] > cb)
01153 if( p[pixel[5]] > cb)
01154 if( p[pixel[6]] > cb)
01155 if( p[pixel[7]] > cb)
01156 goto is_a_corner;
01157 else
01158 goto is_not_a_corner;
01159 else
01160 goto is_not_a_corner;
01161 else
01162 goto is_not_a_corner;
01163 else
01164 goto is_not_a_corner;
01165 else
01166 goto is_not_a_corner;
01167 else
01168 if( p[pixel[2]] > cb)
01169 if( p[pixel[3]] > cb)
01170 if( p[pixel[4]] > cb)
01171 if( p[pixel[5]] > cb)
01172 if( p[pixel[6]] > cb)
01173 if( p[pixel[7]] > cb)
01174 goto is_a_corner;
01175 else
01176 goto is_not_a_corner;
01177 else
01178 goto is_not_a_corner;
01179 else
01180 goto is_not_a_corner;
01181 else
01182 goto is_not_a_corner;
01183 else
01184 goto is_not_a_corner;
01185 else
01186 goto is_not_a_corner;
01187 else
01188 goto is_not_a_corner;
01189 else
01190 goto is_not_a_corner;
01191 else if( p[pixel[8]] < c_b)
01192 if( p[pixel[7]] < c_b)
01193 if( p[pixel[9]] < c_b)
01194 if( p[pixel[6]] < c_b)
01195 if( p[pixel[5]] < c_b)
01196 if( p[pixel[4]] < c_b)
01197 if( p[pixel[3]] < c_b)
01198 if( p[pixel[2]] < c_b)
01199 goto is_a_corner;
01200 else
01201 if( p[pixel[10]] < c_b)
01202 if( p[pixel[11]] < c_b)
01203 goto is_a_corner;
01204 else
01205 goto is_not_a_corner;
01206 else
01207 goto is_not_a_corner;
01208 else
01209 if( p[pixel[10]] < c_b)
01210 if( p[pixel[11]] < c_b)
01211 if( p[pixel[12]] < c_b)
01212 goto is_a_corner;
01213 else
01214 goto is_not_a_corner;
01215 else
01216 goto is_not_a_corner;
01217 else
01218 goto is_not_a_corner;
01219 else
01220 if( p[pixel[10]] < c_b)
01221 if( p[pixel[11]] < c_b)
01222 if( p[pixel[12]] < c_b)
01223 if( p[pixel[13]] < c_b)
01224 goto is_a_corner;
01225 else
01226 goto is_not_a_corner;
01227 else
01228 goto is_not_a_corner;
01229 else
01230 goto is_not_a_corner;
01231 else
01232 goto is_not_a_corner;
01233 else
01234 if( p[pixel[10]] < c_b)
01235 if( p[pixel[11]] < c_b)
01236 if( p[pixel[12]] < c_b)
01237 if( p[pixel[13]] < c_b)
01238 if( p[pixel[14]] < c_b)
01239 goto is_a_corner;
01240 else
01241 goto is_not_a_corner;
01242 else
01243 goto is_not_a_corner;
01244 else
01245 goto is_not_a_corner;
01246 else
01247 goto is_not_a_corner;
01248 else
01249 goto is_not_a_corner;
01250 else
01251 if( p[pixel[10]] < c_b)
01252 if( p[pixel[11]] < c_b)
01253 if( p[pixel[12]] < c_b)
01254 if( p[pixel[13]] < c_b)
01255 if( p[pixel[14]] < c_b)
01256 if( p[pixel[15]] < c_b)
01257 goto is_a_corner;
01258 else
01259 goto is_not_a_corner;
01260 else
01261 goto is_not_a_corner;
01262 else
01263 goto is_not_a_corner;
01264 else
01265 goto is_not_a_corner;
01266 else
01267 goto is_not_a_corner;
01268 else
01269 goto is_not_a_corner;
01270 else
01271 goto is_not_a_corner;
01272 else
01273 goto is_not_a_corner;
01274 else
01275 goto is_not_a_corner;
01276 else
01277 if( p[pixel[8]] > cb)
01278 if( p[pixel[9]] > cb)
01279 if( p[pixel[10]] > cb)
01280 if( p[pixel[11]] > cb)
01281 if( p[pixel[12]] > cb)
01282 if( p[pixel[13]] > cb)
01283 if( p[pixel[14]] > cb)
01284 if( p[pixel[15]] > cb)
01285 goto is_a_corner;
01286 else
01287 if( p[pixel[6]] > cb)
01288 if( p[pixel[7]] > cb)
01289 goto is_a_corner;
01290 else
01291 goto is_not_a_corner;
01292 else
01293 goto is_not_a_corner;
01294 else
01295 if( p[pixel[5]] > cb)
01296 if( p[pixel[6]] > cb)
01297 if( p[pixel[7]] > cb)
01298 goto is_a_corner;
01299 else
01300 goto is_not_a_corner;
01301 else
01302 goto is_not_a_corner;
01303 else
01304 goto is_not_a_corner;
01305 else
01306 if( p[pixel[4]] > cb)
01307 if( p[pixel[5]] > cb)
01308 if( p[pixel[6]] > cb)
01309 if( p[pixel[7]] > cb)
01310 goto is_a_corner;
01311 else
01312 goto is_not_a_corner;
01313 else
01314 goto is_not_a_corner;
01315 else
01316 goto is_not_a_corner;
01317 else
01318 goto is_not_a_corner;
01319 else
01320 if( p[pixel[3]] > cb)
01321 if( p[pixel[4]] > cb)
01322 if( p[pixel[5]] > cb)
01323 if( p[pixel[6]] > cb)
01324 if( p[pixel[7]] > cb)
01325 goto is_a_corner;
01326 else
01327 goto is_not_a_corner;
01328 else
01329 goto is_not_a_corner;
01330 else
01331 goto is_not_a_corner;
01332 else
01333 goto is_not_a_corner;
01334 else
01335 goto is_not_a_corner;
01336 else
01337 if( p[pixel[2]] > cb)
01338 if( p[pixel[3]] > cb)
01339 if( p[pixel[4]] > cb)
01340 if( p[pixel[5]] > cb)
01341 if( p[pixel[6]] > cb)
01342 if( p[pixel[7]] > cb)
01343 goto is_a_corner;
01344 else
01345 goto is_not_a_corner;
01346 else
01347 goto is_not_a_corner;
01348 else
01349 goto is_not_a_corner;
01350 else
01351 goto is_not_a_corner;
01352 else
01353 goto is_not_a_corner;
01354 else
01355 goto is_not_a_corner;
01356 else
01357 goto is_not_a_corner;
01358 else
01359 goto is_not_a_corner;
01360 else if( p[pixel[8]] < c_b)
01361 if( p[pixel[7]] < c_b)
01362 if( p[pixel[9]] < c_b)
01363 if( p[pixel[10]] < c_b)
01364 if( p[pixel[6]] < c_b)
01365 if( p[pixel[5]] < c_b)
01366 if( p[pixel[4]] < c_b)
01367 if( p[pixel[3]] < c_b)
01368 if( p[pixel[2]] < c_b)
01369 goto is_a_corner;
01370 else
01371 if( p[pixel[11]] < c_b)
01372 goto is_a_corner;
01373 else
01374 goto is_not_a_corner;
01375 else
01376 if( p[pixel[11]] < c_b)
01377 if( p[pixel[12]] < c_b)
01378 goto is_a_corner;
01379 else
01380 goto is_not_a_corner;
01381 else
01382 goto is_not_a_corner;
01383 else
01384 if( p[pixel[11]] < c_b)
01385 if( p[pixel[12]] < c_b)
01386 if( p[pixel[13]] < c_b)
01387 goto is_a_corner;
01388 else
01389 goto is_not_a_corner;
01390 else
01391 goto is_not_a_corner;
01392 else
01393 goto is_not_a_corner;
01394 else
01395 if( p[pixel[11]] < c_b)
01396 if( p[pixel[12]] < c_b)
01397 if( p[pixel[13]] < c_b)
01398 if( p[pixel[14]] < c_b)
01399 goto is_a_corner;
01400 else
01401 goto is_not_a_corner;
01402 else
01403 goto is_not_a_corner;
01404 else
01405 goto is_not_a_corner;
01406 else
01407 goto is_not_a_corner;
01408 else
01409 if( p[pixel[11]] < c_b)
01410 if( p[pixel[12]] < c_b)
01411 if( p[pixel[13]] < c_b)
01412 if( p[pixel[14]] < c_b)
01413 if( p[pixel[15]] < c_b)
01414 goto is_a_corner;
01415 else
01416 goto is_not_a_corner;
01417 else
01418 goto is_not_a_corner;
01419 else
01420 goto is_not_a_corner;
01421 else
01422 goto is_not_a_corner;
01423 else
01424 goto is_not_a_corner;
01425 else
01426 goto is_not_a_corner;
01427 else
01428 goto is_not_a_corner;
01429 else
01430 goto is_not_a_corner;
01431 else
01432 goto is_not_a_corner;
01433 else if( p[pixel[0]] < c_b)
01434 if( p[pixel[1]] > cb)
01435 if( p[pixel[8]] > cb)
01436 if( p[pixel[7]] > cb)
01437 if( p[pixel[9]] > cb)
01438 if( p[pixel[6]] > cb)
01439 if( p[pixel[5]] > cb)
01440 if( p[pixel[4]] > cb)
01441 if( p[pixel[3]] > cb)
01442 if( p[pixel[2]] > cb)
01443 goto is_a_corner;
01444 else
01445 if( p[pixel[10]] > cb)
01446 if( p[pixel[11]] > cb)
01447 goto is_a_corner;
01448 else
01449 goto is_not_a_corner;
01450 else
01451 goto is_not_a_corner;
01452 else
01453 if( p[pixel[10]] > cb)
01454 if( p[pixel[11]] > cb)
01455 if( p[pixel[12]] > cb)
01456 goto is_a_corner;
01457 else
01458 goto is_not_a_corner;
01459 else
01460 goto is_not_a_corner;
01461 else
01462 goto is_not_a_corner;
01463 else
01464 if( p[pixel[10]] > cb)
01465 if( p[pixel[11]] > cb)
01466 if( p[pixel[12]] > cb)
01467 if( p[pixel[13]] > cb)
01468 goto is_a_corner;
01469 else
01470 goto is_not_a_corner;
01471 else
01472 goto is_not_a_corner;
01473 else
01474 goto is_not_a_corner;
01475 else
01476 goto is_not_a_corner;
01477 else
01478 if( p[pixel[10]] > cb)
01479 if( p[pixel[11]] > cb)
01480 if( p[pixel[12]] > cb)
01481 if( p[pixel[13]] > cb)
01482 if( p[pixel[14]] > cb)
01483 goto is_a_corner;
01484 else
01485 goto is_not_a_corner;
01486 else
01487 goto is_not_a_corner;
01488 else
01489 goto is_not_a_corner;
01490 else
01491 goto is_not_a_corner;
01492 else
01493 goto is_not_a_corner;
01494 else
01495 if( p[pixel[10]] > cb)
01496 if( p[pixel[11]] > cb)
01497 if( p[pixel[12]] > cb)
01498 if( p[pixel[13]] > cb)
01499 if( p[pixel[14]] > cb)
01500 if( p[pixel[15]] > cb)
01501 goto is_a_corner;
01502 else
01503 goto is_not_a_corner;
01504 else
01505 goto is_not_a_corner;
01506 else
01507 goto is_not_a_corner;
01508 else
01509 goto is_not_a_corner;
01510 else
01511 goto is_not_a_corner;
01512 else
01513 goto is_not_a_corner;
01514 else
01515 goto is_not_a_corner;
01516 else
01517 goto is_not_a_corner;
01518 else if( p[pixel[8]] < c_b)
01519 if( p[pixel[9]] < c_b)
01520 if( p[pixel[10]] < c_b)
01521 if( p[pixel[11]] < c_b)
01522 if( p[pixel[12]] < c_b)
01523 if( p[pixel[13]] < c_b)
01524 if( p[pixel[14]] < c_b)
01525 if( p[pixel[15]] < c_b)
01526 goto is_a_corner;
01527 else
01528 if( p[pixel[6]] < c_b)
01529 if( p[pixel[7]] < c_b)
01530 goto is_a_corner;
01531 else
01532 goto is_not_a_corner;
01533 else
01534 goto is_not_a_corner;
01535 else
01536 if( p[pixel[5]] < c_b)
01537 if( p[pixel[6]] < c_b)
01538 if( p[pixel[7]] < c_b)
01539 goto is_a_corner;
01540 else
01541 goto is_not_a_corner;
01542 else
01543 goto is_not_a_corner;
01544 else
01545 goto is_not_a_corner;
01546 else
01547 if( p[pixel[4]] < c_b)
01548 if( p[pixel[5]] < c_b)
01549 if( p[pixel[6]] < c_b)
01550 if( p[pixel[7]] < c_b)
01551 goto is_a_corner;
01552 else
01553 goto is_not_a_corner;
01554 else
01555 goto is_not_a_corner;
01556 else
01557 goto is_not_a_corner;
01558 else
01559 goto is_not_a_corner;
01560 else
01561 if( p[pixel[3]] < c_b)
01562 if( p[pixel[4]] < c_b)
01563 if( p[pixel[5]] < c_b)
01564 if( p[pixel[6]] < c_b)
01565 if( p[pixel[7]] < c_b)
01566 goto is_a_corner;
01567 else
01568 goto is_not_a_corner;
01569 else
01570 goto is_not_a_corner;
01571 else
01572 goto is_not_a_corner;
01573 else
01574 goto is_not_a_corner;
01575 else
01576 goto is_not_a_corner;
01577 else
01578 if( p[pixel[2]] < c_b)
01579 if( p[pixel[3]] < c_b)
01580 if( p[pixel[4]] < c_b)
01581 if( p[pixel[5]] < c_b)
01582 if( p[pixel[6]] < c_b)
01583 if( p[pixel[7]] < c_b)
01584 goto is_a_corner;
01585 else
01586 goto is_not_a_corner;
01587 else
01588 goto is_not_a_corner;
01589 else
01590 goto is_not_a_corner;
01591 else
01592 goto is_not_a_corner;
01593 else
01594 goto is_not_a_corner;
01595 else
01596 goto is_not_a_corner;
01597 else
01598 goto is_not_a_corner;
01599 else
01600 goto is_not_a_corner;
01601 else
01602 goto is_not_a_corner;
01603 else if( p[pixel[1]] < c_b)
01604 if( p[pixel[2]] > cb)
01605 if( p[pixel[9]] > cb)
01606 if( p[pixel[7]] > cb)
01607 if( p[pixel[8]] > cb)
01608 if( p[pixel[10]] > cb)
01609 if( p[pixel[6]] > cb)
01610 if( p[pixel[5]] > cb)
01611 if( p[pixel[4]] > cb)
01612 if( p[pixel[3]] > cb)
01613 goto is_a_corner;
01614 else
01615 if( p[pixel[11]] > cb)
01616 if( p[pixel[12]] > cb)
01617 goto is_a_corner;
01618 else
01619 goto is_not_a_corner;
01620 else
01621 goto is_not_a_corner;
01622 else
01623 if( p[pixel[11]] > cb)
01624 if( p[pixel[12]] > cb)
01625 if( p[pixel[13]] > cb)
01626 goto is_a_corner;
01627 else
01628 goto is_not_a_corner;
01629 else
01630 goto is_not_a_corner;
01631 else
01632 goto is_not_a_corner;
01633 else
01634 if( p[pixel[11]] > cb)
01635 if( p[pixel[12]] > cb)
01636 if( p[pixel[13]] > cb)
01637 if( p[pixel[14]] > cb)
01638 goto is_a_corner;
01639 else
01640 goto is_not_a_corner;
01641 else
01642 goto is_not_a_corner;
01643 else
01644 goto is_not_a_corner;
01645 else
01646 goto is_not_a_corner;
01647 else
01648 if( p[pixel[11]] > cb)
01649 if( p[pixel[12]] > cb)
01650 if( p[pixel[13]] > cb)
01651 if( p[pixel[14]] > cb)
01652 if( p[pixel[15]] > cb)
01653 goto is_a_corner;
01654 else
01655 goto is_not_a_corner;
01656 else
01657 goto is_not_a_corner;
01658 else
01659 goto is_not_a_corner;
01660 else
01661 goto is_not_a_corner;
01662 else
01663 goto is_not_a_corner;
01664 else
01665 goto is_not_a_corner;
01666 else
01667 goto is_not_a_corner;
01668 else
01669 goto is_not_a_corner;
01670 else if( p[pixel[9]] < c_b)
01671 if( p[pixel[10]] < c_b)
01672 if( p[pixel[11]] < c_b)
01673 if( p[pixel[12]] < c_b)
01674 if( p[pixel[13]] < c_b)
01675 if( p[pixel[14]] < c_b)
01676 if( p[pixel[15]] < c_b)
01677 goto is_a_corner;
01678 else
01679 if( p[pixel[6]] < c_b)
01680 if( p[pixel[7]] < c_b)
01681 if( p[pixel[8]] < c_b)
01682 goto is_a_corner;
01683 else
01684 goto is_not_a_corner;
01685 else
01686 goto is_not_a_corner;
01687 else
01688 goto is_not_a_corner;
01689 else
01690 if( p[pixel[5]] < c_b)
01691 if( p[pixel[6]] < c_b)
01692 if( p[pixel[7]] < c_b)
01693 if( p[pixel[8]] < c_b)
01694 goto is_a_corner;
01695 else
01696 goto is_not_a_corner;
01697 else
01698 goto is_not_a_corner;
01699 else
01700 goto is_not_a_corner;
01701 else
01702 goto is_not_a_corner;
01703 else
01704 if( p[pixel[4]] < c_b)
01705 if( p[pixel[5]] < c_b)
01706 if( p[pixel[6]] < c_b)
01707 if( p[pixel[7]] < c_b)
01708 if( p[pixel[8]] < c_b)
01709 goto is_a_corner;
01710 else
01711 goto is_not_a_corner;
01712 else
01713 goto is_not_a_corner;
01714 else
01715 goto is_not_a_corner;
01716 else
01717 goto is_not_a_corner;
01718 else
01719 goto is_not_a_corner;
01720 else
01721 if( p[pixel[3]] < c_b)
01722 if( p[pixel[4]] < c_b)
01723 if( p[pixel[5]] < c_b)
01724 if( p[pixel[6]] < c_b)
01725 if( p[pixel[7]] < c_b)
01726 if( p[pixel[8]] < c_b)
01727 goto is_a_corner;
01728 else
01729 goto is_not_a_corner;
01730 else
01731 goto is_not_a_corner;
01732 else
01733 goto is_not_a_corner;
01734 else
01735 goto is_not_a_corner;
01736 else
01737 goto is_not_a_corner;
01738 else
01739 goto is_not_a_corner;
01740 else
01741 goto is_not_a_corner;
01742 else
01743 goto is_not_a_corner;
01744 else
01745 goto is_not_a_corner;
01746 else if( p[pixel[2]] < c_b)
01747 if( p[pixel[3]] > cb)
01748 if( p[pixel[10]] > cb)
01749 if( p[pixel[7]] > cb)
01750 if( p[pixel[8]] > cb)
01751 if( p[pixel[9]] > cb)
01752 if( p[pixel[11]] > cb)
01753 if( p[pixel[6]] > cb)
01754 if( p[pixel[5]] > cb)
01755 if( p[pixel[4]] > cb)
01756 goto is_a_corner;
01757 else
01758 if( p[pixel[12]] > cb)
01759 if( p[pixel[13]] > cb)
01760 goto is_a_corner;
01761 else
01762 goto is_not_a_corner;
01763 else
01764 goto is_not_a_corner;
01765 else
01766 if( p[pixel[12]] > cb)
01767 if( p[pixel[13]] > cb)
01768 if( p[pixel[14]] > cb)
01769 goto is_a_corner;
01770 else
01771 goto is_not_a_corner;
01772 else
01773 goto is_not_a_corner;
01774 else
01775 goto is_not_a_corner;
01776 else
01777 if( p[pixel[12]] > cb)
01778 if( p[pixel[13]] > cb)
01779 if( p[pixel[14]] > cb)
01780 if( p[pixel[15]] > cb)
01781 goto is_a_corner;
01782 else
01783 goto is_not_a_corner;
01784 else
01785 goto is_not_a_corner;
01786 else
01787 goto is_not_a_corner;
01788 else
01789 goto is_not_a_corner;
01790 else
01791 goto is_not_a_corner;
01792 else
01793 goto is_not_a_corner;
01794 else
01795 goto is_not_a_corner;
01796 else
01797 goto is_not_a_corner;
01798 else if( p[pixel[10]] < c_b)
01799 if( p[pixel[11]] < c_b)
01800 if( p[pixel[12]] < c_b)
01801 if( p[pixel[13]] < c_b)
01802 if( p[pixel[14]] < c_b)
01803 if( p[pixel[15]] < c_b)
01804 goto is_a_corner;
01805 else
01806 if( p[pixel[6]] < c_b)
01807 if( p[pixel[7]] < c_b)
01808 if( p[pixel[8]] < c_b)
01809 if( p[pixel[9]] < c_b)
01810 goto is_a_corner;
01811 else
01812 goto is_not_a_corner;
01813 else
01814 goto is_not_a_corner;
01815 else
01816 goto is_not_a_corner;
01817 else
01818 goto is_not_a_corner;
01819 else
01820 if( p[pixel[5]] < c_b)
01821 if( p[pixel[6]] < c_b)
01822 if( p[pixel[7]] < c_b)
01823 if( p[pixel[8]] < c_b)
01824 if( p[pixel[9]] < c_b)
01825 goto is_a_corner;
01826 else
01827 goto is_not_a_corner;
01828 else
01829 goto is_not_a_corner;
01830 else
01831 goto is_not_a_corner;
01832 else
01833 goto is_not_a_corner;
01834 else
01835 goto is_not_a_corner;
01836 else
01837 if( p[pixel[4]] < c_b)
01838 if( p[pixel[5]] < c_b)
01839 if( p[pixel[6]] < c_b)
01840 if( p[pixel[7]] < c_b)
01841 if( p[pixel[8]] < c_b)
01842 if( p[pixel[9]] < c_b)
01843 goto is_a_corner;
01844 else
01845 goto is_not_a_corner;
01846 else
01847 goto is_not_a_corner;
01848 else
01849 goto is_not_a_corner;
01850 else
01851 goto is_not_a_corner;
01852 else
01853 goto is_not_a_corner;
01854 else
01855 goto is_not_a_corner;
01856 else
01857 goto is_not_a_corner;
01858 else
01859 goto is_not_a_corner;
01860 else
01861 goto is_not_a_corner;
01862 else if( p[pixel[3]] < c_b)
01863 if( p[pixel[4]] > cb)
01864 if( p[pixel[13]] > cb)
01865 if( p[pixel[7]] > cb)
01866 if( p[pixel[8]] > cb)
01867 if( p[pixel[9]] > cb)
01868 if( p[pixel[10]] > cb)
01869 if( p[pixel[11]] > cb)
01870 if( p[pixel[12]] > cb)
01871 if( p[pixel[6]] > cb)
01872 if( p[pixel[5]] > cb)
01873 goto is_a_corner;
01874 else
01875 if( p[pixel[14]] > cb)
01876 goto is_a_corner;
01877 else
01878 goto is_not_a_corner;
01879 else
01880 if( p[pixel[14]] > cb)
01881 if( p[pixel[15]] > cb)
01882 goto is_a_corner;
01883 else
01884 goto is_not_a_corner;
01885 else
01886 goto is_not_a_corner;
01887 else
01888 goto is_not_a_corner;
01889 else
01890 goto is_not_a_corner;
01891 else
01892 goto is_not_a_corner;
01893 else
01894 goto is_not_a_corner;
01895 else
01896 goto is_not_a_corner;
01897 else
01898 goto is_not_a_corner;
01899 else if( p[pixel[13]] < c_b)
01900 if( p[pixel[11]] > cb)
01901 if( p[pixel[5]] > cb)
01902 if( p[pixel[6]] > cb)
01903 if( p[pixel[7]] > cb)
01904 if( p[pixel[8]] > cb)
01905 if( p[pixel[9]] > cb)
01906 if( p[pixel[10]] > cb)
01907 if( p[pixel[12]] > cb)
01908 goto is_a_corner;
01909 else
01910 goto is_not_a_corner;
01911 else
01912 goto is_not_a_corner;
01913 else
01914 goto is_not_a_corner;
01915 else
01916 goto is_not_a_corner;
01917 else
01918 goto is_not_a_corner;
01919 else
01920 goto is_not_a_corner;
01921 else
01922 goto is_not_a_corner;
01923 else if( p[pixel[11]] < c_b)
01924 if( p[pixel[12]] < c_b)
01925 if( p[pixel[14]] < c_b)
01926 if( p[pixel[15]] < c_b)
01927 goto is_a_corner;
01928 else
01929 if( p[pixel[6]] < c_b)
01930 if( p[pixel[7]] < c_b)
01931 if( p[pixel[8]] < c_b)
01932 if( p[pixel[9]] < c_b)
01933 if( p[pixel[10]] < c_b)
01934 goto is_a_corner;
01935 else
01936 goto is_not_a_corner;
01937 else
01938 goto is_not_a_corner;
01939 else
01940 goto is_not_a_corner;
01941 else
01942 goto is_not_a_corner;
01943 else
01944 goto is_not_a_corner;
01945 else
01946 if( p[pixel[5]] < c_b)
01947 if( p[pixel[6]] < c_b)
01948 if( p[pixel[7]] < c_b)
01949 if( p[pixel[8]] < c_b)
01950 if( p[pixel[9]] < c_b)
01951 if( p[pixel[10]] < c_b)
01952 goto is_a_corner;
01953 else
01954 goto is_not_a_corner;
01955 else
01956 goto is_not_a_corner;
01957 else
01958 goto is_not_a_corner;
01959 else
01960 goto is_not_a_corner;
01961 else
01962 goto is_not_a_corner;
01963 else
01964 goto is_not_a_corner;
01965 else
01966 goto is_not_a_corner;
01967 else
01968 goto is_not_a_corner;
01969 else
01970 if( p[pixel[5]] > cb)
01971 if( p[pixel[6]] > cb)
01972 if( p[pixel[7]] > cb)
01973 if( p[pixel[8]] > cb)
01974 if( p[pixel[9]] > cb)
01975 if( p[pixel[10]] > cb)
01976 if( p[pixel[11]] > cb)
01977 if( p[pixel[12]] > cb)
01978 goto is_a_corner;
01979 else
01980 goto is_not_a_corner;
01981 else
01982 goto is_not_a_corner;
01983 else
01984 goto is_not_a_corner;
01985 else
01986 goto is_not_a_corner;
01987 else
01988 goto is_not_a_corner;
01989 else
01990 goto is_not_a_corner;
01991 else
01992 goto is_not_a_corner;
01993 else
01994 goto is_not_a_corner;
01995 else if( p[pixel[4]] < c_b)
01996 if( p[pixel[5]] > cb)
01997 if( p[pixel[14]] > cb)
01998 if( p[pixel[7]] > cb)
01999 if( p[pixel[8]] > cb)
02000 if( p[pixel[9]] > cb)
02001 if( p[pixel[10]] > cb)
02002 if( p[pixel[11]] > cb)
02003 if( p[pixel[12]] > cb)
02004 if( p[pixel[13]] > cb)
02005 if( p[pixel[6]] > cb)
02006 goto is_a_corner;
02007 else
02008 if( p[pixel[15]] > cb)
02009 goto is_a_corner;
02010 else
02011 goto is_not_a_corner;
02012 else
02013 goto is_not_a_corner;
02014 else
02015 goto is_not_a_corner;
02016 else
02017 goto is_not_a_corner;
02018 else
02019 goto is_not_a_corner;
02020 else
02021 goto is_not_a_corner;
02022 else
02023 goto is_not_a_corner;
02024 else
02025 goto is_not_a_corner;
02026 else if( p[pixel[14]] < c_b)
02027 if( p[pixel[12]] > cb)
02028 if( p[pixel[6]] > cb)
02029 if( p[pixel[7]] > cb)
02030 if( p[pixel[8]] > cb)
02031 if( p[pixel[9]] > cb)
02032 if( p[pixel[10]] > cb)
02033 if( p[pixel[11]] > cb)
02034 if( p[pixel[13]] > cb)
02035 goto is_a_corner;
02036 else
02037 goto is_not_a_corner;
02038 else
02039 goto is_not_a_corner;
02040 else
02041 goto is_not_a_corner;
02042 else
02043 goto is_not_a_corner;
02044 else
02045 goto is_not_a_corner;
02046 else
02047 goto is_not_a_corner;
02048 else
02049 goto is_not_a_corner;
02050 else if( p[pixel[12]] < c_b)
02051 if( p[pixel[13]] < c_b)
02052 if( p[pixel[15]] < c_b)
02053 goto is_a_corner;
02054 else
02055 if( p[pixel[6]] < c_b)
02056 if( p[pixel[7]] < c_b)
02057 if( p[pixel[8]] < c_b)
02058 if( p[pixel[9]] < c_b)
02059 if( p[pixel[10]] < c_b)
02060 if( p[pixel[11]] < c_b)
02061 goto is_a_corner;
02062 else
02063 goto is_not_a_corner;
02064 else
02065 goto is_not_a_corner;
02066 else
02067 goto is_not_a_corner;
02068 else
02069 goto is_not_a_corner;
02070 else
02071 goto is_not_a_corner;
02072 else
02073 goto is_not_a_corner;
02074 else
02075 goto is_not_a_corner;
02076 else
02077 goto is_not_a_corner;
02078 else
02079 if( p[pixel[6]] > cb)
02080 if( p[pixel[7]] > cb)
02081 if( p[pixel[8]] > cb)
02082 if( p[pixel[9]] > cb)
02083 if( p[pixel[10]] > cb)
02084 if( p[pixel[11]] > cb)
02085 if( p[pixel[12]] > cb)
02086 if( p[pixel[13]] > cb)
02087 goto is_a_corner;
02088 else
02089 goto is_not_a_corner;
02090 else
02091 goto is_not_a_corner;
02092 else
02093 goto is_not_a_corner;
02094 else
02095 goto is_not_a_corner;
02096 else
02097 goto is_not_a_corner;
02098 else
02099 goto is_not_a_corner;
02100 else
02101 goto is_not_a_corner;
02102 else
02103 goto is_not_a_corner;
02104 else if( p[pixel[5]] < c_b)
02105 if( p[pixel[6]] > cb)
02106 if( p[pixel[15]] < c_b)
02107 if( p[pixel[13]] > cb)
02108 if( p[pixel[7]] > cb)
02109 if( p[pixel[8]] > cb)
02110 if( p[pixel[9]] > cb)
02111 if( p[pixel[10]] > cb)
02112 if( p[pixel[11]] > cb)
02113 if( p[pixel[12]] > cb)
02114 if( p[pixel[14]] > cb)
02115 goto is_a_corner;
02116 else
02117 goto is_not_a_corner;
02118 else
02119 goto is_not_a_corner;
02120 else
02121 goto is_not_a_corner;
02122 else
02123 goto is_not_a_corner;
02124 else
02125 goto is_not_a_corner;
02126 else
02127 goto is_not_a_corner;
02128 else
02129 goto is_not_a_corner;
02130 else if( p[pixel[13]] < c_b)
02131 if( p[pixel[14]] < c_b)
02132 goto is_a_corner;
02133 else
02134 goto is_not_a_corner;
02135 else
02136 goto is_not_a_corner;
02137 else
02138 if( p[pixel[7]] > cb)
02139 if( p[pixel[8]] > cb)
02140 if( p[pixel[9]] > cb)
02141 if( p[pixel[10]] > cb)
02142 if( p[pixel[11]] > cb)
02143 if( p[pixel[12]] > cb)
02144 if( p[pixel[13]] > cb)
02145 if( p[pixel[14]] > cb)
02146 goto is_a_corner;
02147 else
02148 goto is_not_a_corner;
02149 else
02150 goto is_not_a_corner;
02151 else
02152 goto is_not_a_corner;
02153 else
02154 goto is_not_a_corner;
02155 else
02156 goto is_not_a_corner;
02157 else
02158 goto is_not_a_corner;
02159 else
02160 goto is_not_a_corner;
02161 else
02162 goto is_not_a_corner;
02163 else if( p[pixel[6]] < c_b)
02164 if( p[pixel[7]] > cb)
02165 if( p[pixel[14]] > cb)
02166 if( p[pixel[8]] > cb)
02167 if( p[pixel[9]] > cb)
02168 if( p[pixel[10]] > cb)
02169 if( p[pixel[11]] > cb)
02170 if( p[pixel[12]] > cb)
02171 if( p[pixel[13]] > cb)
02172 if( p[pixel[15]] > cb)
02173 goto is_a_corner;
02174 else
02175 goto is_not_a_corner;
02176 else
02177 goto is_not_a_corner;
02178 else
02179 goto is_not_a_corner;
02180 else
02181 goto is_not_a_corner;
02182 else
02183 goto is_not_a_corner;
02184 else
02185 goto is_not_a_corner;
02186 else
02187 goto is_not_a_corner;
02188 else if( p[pixel[14]] < c_b)
02189 if( p[pixel[15]] < c_b)
02190 goto is_a_corner;
02191 else
02192 goto is_not_a_corner;
02193 else
02194 goto is_not_a_corner;
02195 else if( p[pixel[7]] < c_b)
02196 if( p[pixel[8]] < c_b)
02197 goto is_a_corner;
02198 else
02199 if( p[pixel[15]] < c_b)
02200 goto is_a_corner;
02201 else
02202 goto is_not_a_corner;
02203 else
02204 if( p[pixel[14]] < c_b)
02205 if( p[pixel[15]] < c_b)
02206 goto is_a_corner;
02207 else
02208 goto is_not_a_corner;
02209 else
02210 goto is_not_a_corner;
02211 else
02212 if( p[pixel[13]] > cb)
02213 if( p[pixel[7]] > cb)
02214 if( p[pixel[8]] > cb)
02215 if( p[pixel[9]] > cb)
02216 if( p[pixel[10]] > cb)
02217 if( p[pixel[11]] > cb)
02218 if( p[pixel[12]] > cb)
02219 if( p[pixel[14]] > cb)
02220 if( p[pixel[15]] > cb)
02221 goto is_a_corner;
02222 else
02223 goto is_not_a_corner;
02224 else
02225 goto is_not_a_corner;
02226 else
02227 goto is_not_a_corner;
02228 else
02229 goto is_not_a_corner;
02230 else
02231 goto is_not_a_corner;
02232 else
02233 goto is_not_a_corner;
02234 else
02235 goto is_not_a_corner;
02236 else
02237 goto is_not_a_corner;
02238 else if( p[pixel[13]] < c_b)
02239 if( p[pixel[14]] < c_b)
02240 if( p[pixel[15]] < c_b)
02241 goto is_a_corner;
02242 else
02243 goto is_not_a_corner;
02244 else
02245 goto is_not_a_corner;
02246 else
02247 goto is_not_a_corner;
02248 else
02249 if( p[pixel[12]] > cb)
02250 if( p[pixel[7]] > cb)
02251 if( p[pixel[8]] > cb)
02252 if( p[pixel[9]] > cb)
02253 if( p[pixel[10]] > cb)
02254 if( p[pixel[11]] > cb)
02255 if( p[pixel[13]] > cb)
02256 if( p[pixel[14]] > cb)
02257 if( p[pixel[6]] > cb)
02258 goto is_a_corner;
02259 else
02260 if( p[pixel[15]] > cb)
02261 goto is_a_corner;
02262 else
02263 goto is_not_a_corner;
02264 else
02265 goto is_not_a_corner;
02266 else
02267 goto is_not_a_corner;
02268 else
02269 goto is_not_a_corner;
02270 else
02271 goto is_not_a_corner;
02272 else
02273 goto is_not_a_corner;
02274 else
02275 goto is_not_a_corner;
02276 else
02277 goto is_not_a_corner;
02278 else if( p[pixel[12]] < c_b)
02279 if( p[pixel[13]] < c_b)
02280 if( p[pixel[14]] < c_b)
02281 if( p[pixel[15]] < c_b)
02282 goto is_a_corner;
02283 else
02284 if( p[pixel[6]] < c_b)
02285 if( p[pixel[7]] < c_b)
02286 if( p[pixel[8]] < c_b)
02287 if( p[pixel[9]] < c_b)
02288 if( p[pixel[10]] < c_b)
02289 if( p[pixel[11]] < c_b)
02290 goto is_a_corner;
02291 else
02292 goto is_not_a_corner;
02293 else
02294 goto is_not_a_corner;
02295 else
02296 goto is_not_a_corner;
02297 else
02298 goto is_not_a_corner;
02299 else
02300 goto is_not_a_corner;
02301 else
02302 goto is_not_a_corner;
02303 else
02304 goto is_not_a_corner;
02305 else
02306 goto is_not_a_corner;
02307 else
02308 goto is_not_a_corner;
02309 else
02310 if( p[pixel[11]] > cb)
02311 if( p[pixel[7]] > cb)
02312 if( p[pixel[8]] > cb)
02313 if( p[pixel[9]] > cb)
02314 if( p[pixel[10]] > cb)
02315 if( p[pixel[12]] > cb)
02316 if( p[pixel[13]] > cb)
02317 if( p[pixel[6]] > cb)
02318 if( p[pixel[5]] > cb)
02319 goto is_a_corner;
02320 else
02321 if( p[pixel[14]] > cb)
02322 goto is_a_corner;
02323 else
02324 goto is_not_a_corner;
02325 else
02326 if( p[pixel[14]] > cb)
02327 if( p[pixel[15]] > cb)
02328 goto is_a_corner;
02329 else
02330 goto is_not_a_corner;
02331 else
02332 goto is_not_a_corner;
02333 else
02334 goto is_not_a_corner;
02335 else
02336 goto is_not_a_corner;
02337 else
02338 goto is_not_a_corner;
02339 else
02340 goto is_not_a_corner;
02341 else
02342 goto is_not_a_corner;
02343 else
02344 goto is_not_a_corner;
02345 else if( p[pixel[11]] < c_b)
02346 if( p[pixel[12]] < c_b)
02347 if( p[pixel[13]] < c_b)
02348 if( p[pixel[14]] < c_b)
02349 if( p[pixel[15]] < c_b)
02350 goto is_a_corner;
02351 else
02352 if( p[pixel[6]] < c_b)
02353 if( p[pixel[7]] < c_b)
02354 if( p[pixel[8]] < c_b)
02355 if( p[pixel[9]] < c_b)
02356 if( p[pixel[10]] < c_b)
02357 goto is_a_corner;
02358 else
02359 goto is_not_a_corner;
02360 else
02361 goto is_not_a_corner;
02362 else
02363 goto is_not_a_corner;
02364 else
02365 goto is_not_a_corner;
02366 else
02367 goto is_not_a_corner;
02368 else
02369 if( p[pixel[5]] < c_b)
02370 if( p[pixel[6]] < c_b)
02371 if( p[pixel[7]] < c_b)
02372 if( p[pixel[8]] < c_b)
02373 if( p[pixel[9]] < c_b)
02374 if( p[pixel[10]] < c_b)
02375 goto is_a_corner;
02376 else
02377 goto is_not_a_corner;
02378 else
02379 goto is_not_a_corner;
02380 else
02381 goto is_not_a_corner;
02382 else
02383 goto is_not_a_corner;
02384 else
02385 goto is_not_a_corner;
02386 else
02387 goto is_not_a_corner;
02388 else
02389 goto is_not_a_corner;
02390 else
02391 goto is_not_a_corner;
02392 else
02393 goto is_not_a_corner;
02394 else
02395 if( p[pixel[10]] > cb)
02396 if( p[pixel[7]] > cb)
02397 if( p[pixel[8]] > cb)
02398 if( p[pixel[9]] > cb)
02399 if( p[pixel[11]] > cb)
02400 if( p[pixel[12]] > cb)
02401 if( p[pixel[6]] > cb)
02402 if( p[pixel[5]] > cb)
02403 if( p[pixel[4]] > cb)
02404 goto is_a_corner;
02405 else
02406 if( p[pixel[13]] > cb)
02407 goto is_a_corner;
02408 else
02409 goto is_not_a_corner;
02410 else
02411 if( p[pixel[13]] > cb)
02412 if( p[pixel[14]] > cb)
02413 goto is_a_corner;
02414 else
02415 goto is_not_a_corner;
02416 else
02417 goto is_not_a_corner;
02418 else
02419 if( p[pixel[13]] > cb)
02420 if( p[pixel[14]] > cb)
02421 if( p[pixel[15]] > cb)
02422 goto is_a_corner;
02423 else
02424 goto is_not_a_corner;
02425 else
02426 goto is_not_a_corner;
02427 else
02428 goto is_not_a_corner;
02429 else
02430 goto is_not_a_corner;
02431 else
02432 goto is_not_a_corner;
02433 else
02434 goto is_not_a_corner;
02435 else
02436 goto is_not_a_corner;
02437 else
02438 goto is_not_a_corner;
02439 else if( p[pixel[10]] < c_b)
02440 if( p[pixel[11]] < c_b)
02441 if( p[pixel[12]] < c_b)
02442 if( p[pixel[13]] < c_b)
02443 if( p[pixel[14]] < c_b)
02444 if( p[pixel[15]] < c_b)
02445 goto is_a_corner;
02446 else
02447 if( p[pixel[6]] < c_b)
02448 if( p[pixel[7]] < c_b)
02449 if( p[pixel[8]] < c_b)
02450 if( p[pixel[9]] < c_b)
02451 goto is_a_corner;
02452 else
02453 goto is_not_a_corner;
02454 else
02455 goto is_not_a_corner;
02456 else
02457 goto is_not_a_corner;
02458 else
02459 goto is_not_a_corner;
02460 else
02461 if( p[pixel[5]] < c_b)
02462 if( p[pixel[6]] < c_b)
02463 if( p[pixel[7]] < c_b)
02464 if( p[pixel[8]] < c_b)
02465 if( p[pixel[9]] < c_b)
02466 goto is_a_corner;
02467 else
02468 goto is_not_a_corner;
02469 else
02470 goto is_not_a_corner;
02471 else
02472 goto is_not_a_corner;
02473 else
02474 goto is_not_a_corner;
02475 else
02476 goto is_not_a_corner;
02477 else
02478 if( p[pixel[4]] < c_b)
02479 if( p[pixel[5]] < c_b)
02480 if( p[pixel[6]] < c_b)
02481 if( p[pixel[7]] < c_b)
02482 if( p[pixel[8]] < c_b)
02483 if( p[pixel[9]] < c_b)
02484 goto is_a_corner;
02485 else
02486 goto is_not_a_corner;
02487 else
02488 goto is_not_a_corner;
02489 else
02490 goto is_not_a_corner;
02491 else
02492 goto is_not_a_corner;
02493 else
02494 goto is_not_a_corner;
02495 else
02496 goto is_not_a_corner;
02497 else
02498 goto is_not_a_corner;
02499 else
02500 goto is_not_a_corner;
02501 else
02502 goto is_not_a_corner;
02503 else
02504 if( p[pixel[9]] > cb)
02505 if( p[pixel[7]] > cb)
02506 if( p[pixel[8]] > cb)
02507 if( p[pixel[10]] > cb)
02508 if( p[pixel[11]] > cb)
02509 if( p[pixel[6]] > cb)
02510 if( p[pixel[5]] > cb)
02511 if( p[pixel[4]] > cb)
02512 if( p[pixel[3]] > cb)
02513 goto is_a_corner;
02514 else
02515 if( p[pixel[12]] > cb)
02516 goto is_a_corner;
02517 else
02518 goto is_not_a_corner;
02519 else
02520 if( p[pixel[12]] > cb)
02521 if( p[pixel[13]] > cb)
02522 goto is_a_corner;
02523 else
02524 goto is_not_a_corner;
02525 else
02526 goto is_not_a_corner;
02527 else
02528 if( p[pixel[12]] > cb)
02529 if( p[pixel[13]] > cb)
02530 if( p[pixel[14]] > cb)
02531 goto is_a_corner;
02532 else
02533 goto is_not_a_corner;
02534 else
02535 goto is_not_a_corner;
02536 else
02537 goto is_not_a_corner;
02538 else
02539 if( p[pixel[12]] > cb)
02540 if( p[pixel[13]] > cb)
02541 if( p[pixel[14]] > cb)
02542 if( p[pixel[15]] > cb)
02543 goto is_a_corner;
02544 else
02545 goto is_not_a_corner;
02546 else
02547 goto is_not_a_corner;
02548 else
02549 goto is_not_a_corner;
02550 else
02551 goto is_not_a_corner;
02552 else
02553 goto is_not_a_corner;
02554 else
02555 goto is_not_a_corner;
02556 else
02557 goto is_not_a_corner;
02558 else
02559 goto is_not_a_corner;
02560 else if( p[pixel[9]] < c_b)
02561 if( p[pixel[10]] < c_b)
02562 if( p[pixel[11]] < c_b)
02563 if( p[pixel[12]] < c_b)
02564 if( p[pixel[13]] < c_b)
02565 if( p[pixel[14]] < c_b)
02566 if( p[pixel[15]] < c_b)
02567 goto is_a_corner;
02568 else
02569 if( p[pixel[6]] < c_b)
02570 if( p[pixel[7]] < c_b)
02571 if( p[pixel[8]] < c_b)
02572 goto is_a_corner;
02573 else
02574 goto is_not_a_corner;
02575 else
02576 goto is_not_a_corner;
02577 else
02578 goto is_not_a_corner;
02579 else
02580 if( p[pixel[5]] < c_b)
02581 if( p[pixel[6]] < c_b)
02582 if( p[pixel[7]] < c_b)
02583 if( p[pixel[8]] < c_b)
02584 goto is_a_corner;
02585 else
02586 goto is_not_a_corner;
02587 else
02588 goto is_not_a_corner;
02589 else
02590 goto is_not_a_corner;
02591 else
02592 goto is_not_a_corner;
02593 else
02594 if( p[pixel[4]] < c_b)
02595 if( p[pixel[5]] < c_b)
02596 if( p[pixel[6]] < c_b)
02597 if( p[pixel[7]] < c_b)
02598 if( p[pixel[8]] < c_b)
02599 goto is_a_corner;
02600 else
02601 goto is_not_a_corner;
02602 else
02603 goto is_not_a_corner;
02604 else
02605 goto is_not_a_corner;
02606 else
02607 goto is_not_a_corner;
02608 else
02609 goto is_not_a_corner;
02610 else
02611 if( p[pixel[3]] < c_b)
02612 if( p[pixel[4]] < c_b)
02613 if( p[pixel[5]] < c_b)
02614 if( p[pixel[6]] < c_b)
02615 if( p[pixel[7]] < c_b)
02616 if( p[pixel[8]] < c_b)
02617 goto is_a_corner;
02618 else
02619 goto is_not_a_corner;
02620 else
02621 goto is_not_a_corner;
02622 else
02623 goto is_not_a_corner;
02624 else
02625 goto is_not_a_corner;
02626 else
02627 goto is_not_a_corner;
02628 else
02629 goto is_not_a_corner;
02630 else
02631 goto is_not_a_corner;
02632 else
02633 goto is_not_a_corner;
02634 else
02635 goto is_not_a_corner;
02636 else
02637 if( p[pixel[8]] > cb)
02638 if( p[pixel[7]] > cb)
02639 if( p[pixel[9]] > cb)
02640 if( p[pixel[10]] > cb)
02641 if( p[pixel[6]] > cb)
02642 if( p[pixel[5]] > cb)
02643 if( p[pixel[4]] > cb)
02644 if( p[pixel[3]] > cb)
02645 if( p[pixel[2]] > cb)
02646 goto is_a_corner;
02647 else
02648 if( p[pixel[11]] > cb)
02649 goto is_a_corner;
02650 else
02651 goto is_not_a_corner;
02652 else
02653 if( p[pixel[11]] > cb)
02654 if( p[pixel[12]] > cb)
02655 goto is_a_corner;
02656 else
02657 goto is_not_a_corner;
02658 else
02659 goto is_not_a_corner;
02660 else
02661 if( p[pixel[11]] > cb)
02662 if( p[pixel[12]] > cb)
02663 if( p[pixel[13]] > cb)
02664 goto is_a_corner;
02665 else
02666 goto is_not_a_corner;
02667 else
02668 goto is_not_a_corner;
02669 else
02670 goto is_not_a_corner;
02671 else
02672 if( p[pixel[11]] > cb)
02673 if( p[pixel[12]] > cb)
02674 if( p[pixel[13]] > cb)
02675 if( p[pixel[14]] > cb)
02676 goto is_a_corner;
02677 else
02678 goto is_not_a_corner;
02679 else
02680 goto is_not_a_corner;
02681 else
02682 goto is_not_a_corner;
02683 else
02684 goto is_not_a_corner;
02685 else
02686 if( p[pixel[11]] > cb)
02687 if( p[pixel[12]] > cb)
02688 if( p[pixel[13]] > cb)
02689 if( p[pixel[14]] > cb)
02690 if( p[pixel[15]] > cb)
02691 goto is_a_corner;
02692 else
02693 goto is_not_a_corner;
02694 else
02695 goto is_not_a_corner;
02696 else
02697 goto is_not_a_corner;
02698 else
02699 goto is_not_a_corner;
02700 else
02701 goto is_not_a_corner;
02702 else
02703 goto is_not_a_corner;
02704 else
02705 goto is_not_a_corner;
02706 else
02707 goto is_not_a_corner;
02708 else if( p[pixel[8]] < c_b)
02709 if( p[pixel[9]] < c_b)
02710 if( p[pixel[10]] < c_b)
02711 if( p[pixel[11]] < c_b)
02712 if( p[pixel[12]] < c_b)
02713 if( p[pixel[13]] < c_b)
02714 if( p[pixel[14]] < c_b)
02715 if( p[pixel[15]] < c_b)
02716 goto is_a_corner;
02717 else
02718 if( p[pixel[6]] < c_b)
02719 if( p[pixel[7]] < c_b)
02720 goto is_a_corner;
02721 else
02722 goto is_not_a_corner;
02723 else
02724 goto is_not_a_corner;
02725 else
02726 if( p[pixel[5]] < c_b)
02727 if( p[pixel[6]] < c_b)
02728 if( p[pixel[7]] < c_b)
02729 goto is_a_corner;
02730 else
02731 goto is_not_a_corner;
02732 else
02733 goto is_not_a_corner;
02734 else
02735 goto is_not_a_corner;
02736 else
02737 if( p[pixel[4]] < c_b)
02738 if( p[pixel[5]] < c_b)
02739 if( p[pixel[6]] < c_b)
02740 if( p[pixel[7]] < c_b)
02741 goto is_a_corner;
02742 else
02743 goto is_not_a_corner;
02744 else
02745 goto is_not_a_corner;
02746 else
02747 goto is_not_a_corner;
02748 else
02749 goto is_not_a_corner;
02750 else
02751 if( p[pixel[3]] < c_b)
02752 if( p[pixel[4]] < c_b)
02753 if( p[pixel[5]] < c_b)
02754 if( p[pixel[6]] < c_b)
02755 if( p[pixel[7]] < c_b)
02756 goto is_a_corner;
02757 else
02758 goto is_not_a_corner;
02759 else
02760 goto is_not_a_corner;
02761 else
02762 goto is_not_a_corner;
02763 else
02764 goto is_not_a_corner;
02765 else
02766 goto is_not_a_corner;
02767 else
02768 if( p[pixel[2]] < c_b)
02769 if( p[pixel[3]] < c_b)
02770 if( p[pixel[4]] < c_b)
02771 if( p[pixel[5]] < c_b)
02772 if( p[pixel[6]] < c_b)
02773 if( p[pixel[7]] < c_b)
02774 goto is_a_corner;
02775 else
02776 goto is_not_a_corner;
02777 else
02778 goto is_not_a_corner;
02779 else
02780 goto is_not_a_corner;
02781 else
02782 goto is_not_a_corner;
02783 else
02784 goto is_not_a_corner;
02785 else
02786 goto is_not_a_corner;
02787 else
02788 goto is_not_a_corner;
02789 else
02790 goto is_not_a_corner;
02791 else
02792 goto is_not_a_corner;
02793 else
02794 if( p[pixel[7]] > cb)
02795 if( p[pixel[8]] > cb)
02796 if( p[pixel[9]] > cb)
02797 if( p[pixel[6]] > cb)
02798 if( p[pixel[5]] > cb)
02799 if( p[pixel[4]] > cb)
02800 if( p[pixel[3]] > cb)
02801 if( p[pixel[2]] > cb)
02802 if( p[pixel[1]] > cb)
02803 goto is_a_corner;
02804 else
02805 if( p[pixel[10]] > cb)
02806 goto is_a_corner;
02807 else
02808 goto is_not_a_corner;
02809 else
02810 if( p[pixel[10]] > cb)
02811 if( p[pixel[11]] > cb)
02812 goto is_a_corner;
02813 else
02814 goto is_not_a_corner;
02815 else
02816 goto is_not_a_corner;
02817 else
02818 if( p[pixel[10]] > cb)
02819 if( p[pixel[11]] > cb)
02820 if( p[pixel[12]] > cb)
02821 goto is_a_corner;
02822 else
02823 goto is_not_a_corner;
02824 else
02825 goto is_not_a_corner;
02826 else
02827 goto is_not_a_corner;
02828 else
02829 if( p[pixel[10]] > cb)
02830 if( p[pixel[11]] > cb)
02831 if( p[pixel[12]] > cb)
02832 if( p[pixel[13]] > cb)
02833 goto is_a_corner;
02834 else
02835 goto is_not_a_corner;
02836 else
02837 goto is_not_a_corner;
02838 else
02839 goto is_not_a_corner;
02840 else
02841 goto is_not_a_corner;
02842 else
02843 if( p[pixel[10]] > cb)
02844 if( p[pixel[11]] > cb)
02845 if( p[pixel[12]] > cb)
02846 if( p[pixel[13]] > cb)
02847 if( p[pixel[14]] > cb)
02848 goto is_a_corner;
02849 else
02850 goto is_not_a_corner;
02851 else
02852 goto is_not_a_corner;
02853 else
02854 goto is_not_a_corner;
02855 else
02856 goto is_not_a_corner;
02857 else
02858 goto is_not_a_corner;
02859 else
02860 if( p[pixel[10]] > cb)
02861 if( p[pixel[11]] > cb)
02862 if( p[pixel[12]] > cb)
02863 if( p[pixel[13]] > cb)
02864 if( p[pixel[14]] > cb)
02865 if( p[pixel[15]] > cb)
02866 goto is_a_corner;
02867 else
02868 goto is_not_a_corner;
02869 else
02870 goto is_not_a_corner;
02871 else
02872 goto is_not_a_corner;
02873 else
02874 goto is_not_a_corner;
02875 else
02876 goto is_not_a_corner;
02877 else
02878 goto is_not_a_corner;
02879 else
02880 goto is_not_a_corner;
02881 else
02882 goto is_not_a_corner;
02883 else if( p[pixel[7]] < c_b)
02884 if( p[pixel[8]] < c_b)
02885 if( p[pixel[9]] < c_b)
02886 if( p[pixel[6]] < c_b)
02887 if( p[pixel[5]] < c_b)
02888 if( p[pixel[4]] < c_b)
02889 if( p[pixel[3]] < c_b)
02890 if( p[pixel[2]] < c_b)
02891 if( p[pixel[1]] < c_b)
02892 goto is_a_corner;
02893 else
02894 if( p[pixel[10]] < c_b)
02895 goto is_a_corner;
02896 else
02897 goto is_not_a_corner;
02898 else
02899 if( p[pixel[10]] < c_b)
02900 if( p[pixel[11]] < c_b)
02901 goto is_a_corner;
02902 else
02903 goto is_not_a_corner;
02904 else
02905 goto is_not_a_corner;
02906 else
02907 if( p[pixel[10]] < c_b)
02908 if( p[pixel[11]] < c_b)
02909 if( p[pixel[12]] < c_b)
02910 goto is_a_corner;
02911 else
02912 goto is_not_a_corner;
02913 else
02914 goto is_not_a_corner;
02915 else
02916 goto is_not_a_corner;
02917 else
02918 if( p[pixel[10]] < c_b)
02919 if( p[pixel[11]] < c_b)
02920 if( p[pixel[12]] < c_b)
02921 if( p[pixel[13]] < c_b)
02922 goto is_a_corner;
02923 else
02924 goto is_not_a_corner;
02925 else
02926 goto is_not_a_corner;
02927 else
02928 goto is_not_a_corner;
02929 else
02930 goto is_not_a_corner;
02931 else
02932 if( p[pixel[10]] < c_b)
02933 if( p[pixel[11]] < c_b)
02934 if( p[pixel[12]] < c_b)
02935 if( p[pixel[13]] < c_b)
02936 if( p[pixel[14]] < c_b)
02937 goto is_a_corner;
02938 else
02939 goto is_not_a_corner;
02940 else
02941 goto is_not_a_corner;
02942 else
02943 goto is_not_a_corner;
02944 else
02945 goto is_not_a_corner;
02946 else
02947 goto is_not_a_corner;
02948 else
02949 if( p[pixel[10]] < c_b)
02950 if( p[pixel[11]] < c_b)
02951 if( p[pixel[12]] < c_b)
02952 if( p[pixel[13]] < c_b)
02953 if( p[pixel[14]] < c_b)
02954 if( p[pixel[15]] < c_b)
02955 goto is_a_corner;
02956 else
02957 goto is_not_a_corner;
02958 else
02959 goto is_not_a_corner;
02960 else
02961 goto is_not_a_corner;
02962 else
02963 goto is_not_a_corner;
02964 else
02965 goto is_not_a_corner;
02966 else
02967 goto is_not_a_corner;
02968 else
02969 goto is_not_a_corner;
02970 else
02971 goto is_not_a_corner;
02972 else
02973 goto is_not_a_corner;
02974
02975 is_a_corner:
02976 bmin=b;
02977 goto end_if;
02978
02979 is_not_a_corner:
02980 bmax=b;
02981 goto end_if;
02982
02983 end_if:
02984
02985 if(bmin == bmax - 1 || bmin == bmax)
02986 return bmin;
02987 b = (bmin + bmax) / 2;
02988 }
02989 }
02990
02991 static inline void makeOffsets(int pixel[], int row_stride)
02992 {
02993 pixel[0] = 0 + row_stride * 3;
02994 pixel[1] = 1 + row_stride * 3;
02995 pixel[2] = 2 + row_stride * 2;
02996 pixel[3] = 3 + row_stride * 1;
02997 pixel[4] = 3 + row_stride * 0;
02998 pixel[5] = 3 + row_stride * -1;
02999 pixel[6] = 2 + row_stride * -2;
03000 pixel[7] = 1 + row_stride * -3;
03001 pixel[8] = 0 + row_stride * -3;
03002 pixel[9] = -1 + row_stride * -3;
03003 pixel[10] = -2 + row_stride * -2;
03004 pixel[11] = -3 + row_stride * -1;
03005 pixel[12] = -3 + row_stride * 0;
03006 pixel[13] = -3 + row_stride * 1;
03007 pixel[14] = -2 + row_stride * 2;
03008 pixel[15] = -1 + row_stride * 3;
03009 }
03010
03011
03012 static void fast9ComputeScores(const uint8_t* img, int width, int height, int row_stride,
03013 vector<Point>& corners, vector<int>& scores, int b)
03014 {
03015 int pixel[16];
03016 makeOffsets(pixel, (int)row_stride);
03017 size_t n, num_corners = corners.size();
03018
03019 scores.resize(num_corners);
03020 for(n=0; n < num_corners; n++) {
03021 const uint8_t* p = &img[corners[n].y*row_stride + corners[n].x];
03022 scores[n] = fast9CornerScore(p, pixel, b);
03023 }
03024 }
03025
03026
03027 static void fast9Detect(const uint8_t* img, int width, int height, int row_stride,
03028 vector<Point>& ret_corners, int b)
03029 {
03030 int xsize = width, ysize = height;
03031 int pixel[16];
03032 makeOffsets(pixel, row_stride);
03033
03034 ret_corners.reserve(512);
03035
03036 for(int y=3; y < ysize - 3; y++)
03037 for(int x=3; x < xsize - 3; x++)
03038 {
03039
03040 const uint8_t* p = &img[y*row_stride + x];
03041
03042 int cb = *p + b;
03043 int c_b= *p - b;
03044 if(p[pixel[0]] > cb)
03045 if(p[pixel[1]] > cb)
03046 if(p[pixel[2]] > cb)
03047 if(p[pixel[3]] > cb)
03048 if(p[pixel[4]] > cb)
03049 if(p[pixel[5]] > cb)
03050 if(p[pixel[6]] > cb)
03051 if(p[pixel[7]] > cb)
03052 if(p[pixel[8]] > cb)
03053 {}
03054 else
03055 if(p[pixel[15]] > cb)
03056 {}
03057 else
03058 continue;
03059 else if(p[pixel[7]] < c_b)
03060 if(p[pixel[14]] > cb)
03061 if(p[pixel[15]] > cb)
03062 {}
03063 else
03064 continue;
03065 else if(p[pixel[14]] < c_b)
03066 if(p[pixel[8]] < c_b)
03067 if(p[pixel[9]] < c_b)
03068 if(p[pixel[10]] < c_b)
03069 if(p[pixel[11]] < c_b)
03070 if(p[pixel[12]] < c_b)
03071 if(p[pixel[13]] < c_b)
03072 if(p[pixel[15]] < c_b)
03073 {}
03074 else
03075 continue;
03076 else
03077 continue;
03078 else
03079 continue;
03080 else
03081 continue;
03082 else
03083 continue;
03084 else
03085 continue;
03086 else
03087 continue;
03088 else
03089 continue;
03090 else
03091 if(p[pixel[14]] > cb)
03092 if(p[pixel[15]] > cb)
03093 {}
03094 else
03095 continue;
03096 else
03097 continue;
03098 else if(p[pixel[6]] < c_b)
03099 if(p[pixel[15]] > cb)
03100 if(p[pixel[13]] > cb)
03101 if(p[pixel[14]] > cb)
03102 {}
03103 else
03104 continue;
03105 else if(p[pixel[13]] < c_b)
03106 if(p[pixel[7]] < c_b)
03107 if(p[pixel[8]] < c_b)
03108 if(p[pixel[9]] < c_b)
03109 if(p[pixel[10]] < c_b)
03110 if(p[pixel[11]] < c_b)
03111 if(p[pixel[12]] < c_b)
03112 if(p[pixel[14]] < c_b)
03113 {}
03114 else
03115 continue;
03116 else
03117 continue;
03118 else
03119 continue;
03120 else
03121 continue;
03122 else
03123 continue;
03124 else
03125 continue;
03126 else
03127 continue;
03128 else
03129 continue;
03130 else
03131 if(p[pixel[7]] < c_b)
03132 if(p[pixel[8]] < c_b)
03133 if(p[pixel[9]] < c_b)
03134 if(p[pixel[10]] < c_b)
03135 if(p[pixel[11]] < c_b)
03136 if(p[pixel[12]] < c_b)
03137 if(p[pixel[13]] < c_b)
03138 if(p[pixel[14]] < c_b)
03139 {}
03140 else
03141 continue;
03142 else
03143 continue;
03144 else
03145 continue;
03146 else
03147 continue;
03148 else
03149 continue;
03150 else
03151 continue;
03152 else
03153 continue;
03154 else
03155 continue;
03156 else
03157 if(p[pixel[13]] > cb)
03158 if(p[pixel[14]] > cb)
03159 if(p[pixel[15]] > cb)
03160 {}
03161 else
03162 continue;
03163 else
03164 continue;
03165 else if(p[pixel[13]] < c_b)
03166 if(p[pixel[7]] < c_b)
03167 if(p[pixel[8]] < c_b)
03168 if(p[pixel[9]] < c_b)
03169 if(p[pixel[10]] < c_b)
03170 if(p[pixel[11]] < c_b)
03171 if(p[pixel[12]] < c_b)
03172 if(p[pixel[14]] < c_b)
03173 if(p[pixel[15]] < c_b)
03174 {}
03175 else
03176 continue;
03177 else
03178 continue;
03179 else
03180 continue;
03181 else
03182 continue;
03183 else
03184 continue;
03185 else
03186 continue;
03187 else
03188 continue;
03189 else
03190 continue;
03191 else
03192 continue;
03193 else if(p[pixel[5]] < c_b)
03194 if(p[pixel[14]] > cb)
03195 if(p[pixel[12]] > cb)
03196 if(p[pixel[13]] > cb)
03197 if(p[pixel[15]] > cb)
03198 {}
03199 else
03200 if(p[pixel[6]] > cb)
03201 if(p[pixel[7]] > cb)
03202 if(p[pixel[8]] > cb)
03203 if(p[pixel[9]] > cb)
03204 if(p[pixel[10]] > cb)
03205 if(p[pixel[11]] > cb)
03206 {}
03207 else
03208 continue;
03209 else
03210 continue;
03211 else
03212 continue;
03213 else
03214 continue;
03215 else
03216 continue;
03217 else
03218 continue;
03219 else
03220 continue;
03221 else if(p[pixel[12]] < c_b)
03222 if(p[pixel[6]] < c_b)
03223 if(p[pixel[7]] < c_b)
03224 if(p[pixel[8]] < c_b)
03225 if(p[pixel[9]] < c_b)
03226 if(p[pixel[10]] < c_b)
03227 if(p[pixel[11]] < c_b)
03228 if(p[pixel[13]] < c_b)
03229 {}
03230 else
03231 continue;
03232 else
03233 continue;
03234 else
03235 continue;
03236 else
03237 continue;
03238 else
03239 continue;
03240 else
03241 continue;
03242 else
03243 continue;
03244 else
03245 continue;
03246 else if(p[pixel[14]] < c_b)
03247 if(p[pixel[7]] < c_b)
03248 if(p[pixel[8]] < c_b)
03249 if(p[pixel[9]] < c_b)
03250 if(p[pixel[10]] < c_b)
03251 if(p[pixel[11]] < c_b)
03252 if(p[pixel[12]] < c_b)
03253 if(p[pixel[13]] < c_b)
03254 if(p[pixel[6]] < c_b)
03255 {}
03256 else
03257 if(p[pixel[15]] < c_b)
03258 {}
03259 else
03260 continue;
03261 else
03262 continue;
03263 else
03264 continue;
03265 else
03266 continue;
03267 else
03268 continue;
03269 else
03270 continue;
03271 else
03272 continue;
03273 else
03274 continue;
03275 else
03276 if(p[pixel[6]] < c_b)
03277 if(p[pixel[7]] < c_b)
03278 if(p[pixel[8]] < c_b)
03279 if(p[pixel[9]] < c_b)
03280 if(p[pixel[10]] < c_b)
03281 if(p[pixel[11]] < c_b)
03282 if(p[pixel[12]] < c_b)
03283 if(p[pixel[13]] < c_b)
03284 {}
03285 else
03286 continue;
03287 else
03288 continue;
03289 else
03290 continue;
03291 else
03292 continue;
03293 else
03294 continue;
03295 else
03296 continue;
03297 else
03298 continue;
03299 else
03300 continue;
03301 else
03302 if(p[pixel[12]] > cb)
03303 if(p[pixel[13]] > cb)
03304 if(p[pixel[14]] > cb)
03305 if(p[pixel[15]] > cb)
03306 {}
03307 else
03308 if(p[pixel[6]] > cb)
03309 if(p[pixel[7]] > cb)
03310 if(p[pixel[8]] > cb)
03311 if(p[pixel[9]] > cb)
03312 if(p[pixel[10]] > cb)
03313 if(p[pixel[11]] > cb)
03314 {}
03315 else
03316 continue;
03317 else
03318 continue;
03319 else
03320 continue;
03321 else
03322 continue;
03323 else
03324 continue;
03325 else
03326 continue;
03327 else
03328 continue;
03329 else
03330 continue;
03331 else if(p[pixel[12]] < c_b)
03332 if(p[pixel[7]] < c_b)
03333 if(p[pixel[8]] < c_b)
03334 if(p[pixel[9]] < c_b)
03335 if(p[pixel[10]] < c_b)
03336 if(p[pixel[11]] < c_b)
03337 if(p[pixel[13]] < c_b)
03338 if(p[pixel[14]] < c_b)
03339 if(p[pixel[6]] < c_b)
03340 {}
03341 else
03342 if(p[pixel[15]] < c_b)
03343 {}
03344 else
03345 continue;
03346 else
03347 continue;
03348 else
03349 continue;
03350 else
03351 continue;
03352 else
03353 continue;
03354 else
03355 continue;
03356 else
03357 continue;
03358 else
03359 continue;
03360 else
03361 continue;
03362 else if(p[pixel[4]] < c_b)
03363 if(p[pixel[13]] > cb)
03364 if(p[pixel[11]] > cb)
03365 if(p[pixel[12]] > cb)
03366 if(p[pixel[14]] > cb)
03367 if(p[pixel[15]] > cb)
03368 {}
03369 else
03370 if(p[pixel[6]] > cb)
03371 if(p[pixel[7]] > cb)
03372 if(p[pixel[8]] > cb)
03373 if(p[pixel[9]] > cb)
03374 if(p[pixel[10]] > cb)
03375 {}
03376 else
03377 continue;
03378 else
03379 continue;
03380 else
03381 continue;
03382 else
03383 continue;
03384 else
03385 continue;
03386 else
03387 if(p[pixel[5]] > cb)
03388 if(p[pixel[6]] > cb)
03389 if(p[pixel[7]] > cb)
03390 if(p[pixel[8]] > cb)
03391 if(p[pixel[9]] > cb)
03392 if(p[pixel[10]] > cb)
03393 {}
03394 else
03395 continue;
03396 else
03397 continue;
03398 else
03399 continue;
03400 else
03401 continue;
03402 else
03403 continue;
03404 else
03405 continue;
03406 else
03407 continue;
03408 else if(p[pixel[11]] < c_b)
03409 if(p[pixel[5]] < c_b)
03410 if(p[pixel[6]] < c_b)
03411 if(p[pixel[7]] < c_b)
03412 if(p[pixel[8]] < c_b)
03413 if(p[pixel[9]] < c_b)
03414 if(p[pixel[10]] < c_b)
03415 if(p[pixel[12]] < c_b)
03416 {}
03417 else
03418 continue;
03419 else
03420 continue;
03421 else
03422 continue;
03423 else
03424 continue;
03425 else
03426 continue;
03427 else
03428 continue;
03429 else
03430 continue;
03431 else
03432 continue;
03433 else if(p[pixel[13]] < c_b)
03434 if(p[pixel[7]] < c_b)
03435 if(p[pixel[8]] < c_b)
03436 if(p[pixel[9]] < c_b)
03437 if(p[pixel[10]] < c_b)
03438 if(p[pixel[11]] < c_b)
03439 if(p[pixel[12]] < c_b)
03440 if(p[pixel[6]] < c_b)
03441 if(p[pixel[5]] < c_b)
03442 {}
03443 else
03444 if(p[pixel[14]] < c_b)
03445 {}
03446 else
03447 continue;
03448 else
03449 if(p[pixel[14]] < c_b)
03450 if(p[pixel[15]] < c_b)
03451 {}
03452 else
03453 continue;
03454 else
03455 continue;
03456 else
03457 continue;
03458 else
03459 continue;
03460 else
03461 continue;
03462 else
03463 continue;
03464 else
03465 continue;
03466 else
03467 continue;
03468 else
03469 if(p[pixel[5]] < c_b)
03470 if(p[pixel[6]] < c_b)
03471 if(p[pixel[7]] < c_b)
03472 if(p[pixel[8]] < c_b)
03473 if(p[pixel[9]] < c_b)
03474 if(p[pixel[10]] < c_b)
03475 if(p[pixel[11]] < c_b)
03476 if(p[pixel[12]] < c_b)
03477 {}
03478 else
03479 continue;
03480 else
03481 continue;
03482 else
03483 continue;
03484 else
03485 continue;
03486 else
03487 continue;
03488 else
03489 continue;
03490 else
03491 continue;
03492 else
03493 continue;
03494 else
03495 if(p[pixel[11]] > cb)
03496 if(p[pixel[12]] > cb)
03497 if(p[pixel[13]] > cb)
03498 if(p[pixel[14]] > cb)
03499 if(p[pixel[15]] > cb)
03500 {}
03501 else
03502 if(p[pixel[6]] > cb)
03503 if(p[pixel[7]] > cb)
03504 if(p[pixel[8]] > cb)
03505 if(p[pixel[9]] > cb)
03506 if(p[pixel[10]] > cb)
03507 {}
03508 else
03509 continue;
03510 else
03511 continue;
03512 else
03513 continue;
03514 else
03515 continue;
03516 else
03517 continue;
03518 else
03519 if(p[pixel[5]] > cb)
03520 if(p[pixel[6]] > cb)
03521 if(p[pixel[7]] > cb)
03522 if(p[pixel[8]] > cb)
03523 if(p[pixel[9]] > cb)
03524 if(p[pixel[10]] > cb)
03525 {}
03526 else
03527 continue;
03528 else
03529 continue;
03530 else
03531 continue;
03532 else
03533 continue;
03534 else
03535 continue;
03536 else
03537 continue;
03538 else
03539 continue;
03540 else
03541 continue;
03542 else if(p[pixel[11]] < c_b)
03543 if(p[pixel[7]] < c_b)
03544 if(p[pixel[8]] < c_b)
03545 if(p[pixel[9]] < c_b)
03546 if(p[pixel[10]] < c_b)
03547 if(p[pixel[12]] < c_b)
03548 if(p[pixel[13]] < c_b)
03549 if(p[pixel[6]] < c_b)
03550 if(p[pixel[5]] < c_b)
03551 {}
03552 else
03553 if(p[pixel[14]] < c_b)
03554 {}
03555 else
03556 continue;
03557 else
03558 if(p[pixel[14]] < c_b)
03559 if(p[pixel[15]] < c_b)
03560 {}
03561 else
03562 continue;
03563 else
03564 continue;
03565 else
03566 continue;
03567 else
03568 continue;
03569 else
03570 continue;
03571 else
03572 continue;
03573 else
03574 continue;
03575 else
03576 continue;
03577 else
03578 continue;
03579 else if(p[pixel[3]] < c_b)
03580 if(p[pixel[10]] > cb)
03581 if(p[pixel[11]] > cb)
03582 if(p[pixel[12]] > cb)
03583 if(p[pixel[13]] > cb)
03584 if(p[pixel[14]] > cb)
03585 if(p[pixel[15]] > cb)
03586 {}
03587 else
03588 if(p[pixel[6]] > cb)
03589 if(p[pixel[7]] > cb)
03590 if(p[pixel[8]] > cb)
03591 if(p[pixel[9]] > cb)
03592 {}
03593 else
03594 continue;
03595 else
03596 continue;
03597 else
03598 continue;
03599 else
03600 continue;
03601 else
03602 if(p[pixel[5]] > cb)
03603 if(p[pixel[6]] > cb)
03604 if(p[pixel[7]] > cb)
03605 if(p[pixel[8]] > cb)
03606 if(p[pixel[9]] > cb)
03607 {}
03608 else
03609 continue;
03610 else
03611 continue;
03612 else
03613 continue;
03614 else
03615 continue;
03616 else
03617 continue;
03618 else
03619 if(p[pixel[4]] > cb)
03620 if(p[pixel[5]] > cb)
03621 if(p[pixel[6]] > cb)
03622 if(p[pixel[7]] > cb)
03623 if(p[pixel[8]] > cb)
03624 if(p[pixel[9]] > cb)
03625 {}
03626 else
03627 continue;
03628 else
03629 continue;
03630 else
03631 continue;
03632 else
03633 continue;
03634 else
03635 continue;
03636 else
03637 continue;
03638 else
03639 continue;
03640 else
03641 continue;
03642 else if(p[pixel[10]] < c_b)
03643 if(p[pixel[7]] < c_b)
03644 if(p[pixel[8]] < c_b)
03645 if(p[pixel[9]] < c_b)
03646 if(p[pixel[11]] < c_b)
03647 if(p[pixel[6]] < c_b)
03648 if(p[pixel[5]] < c_b)
03649 if(p[pixel[4]] < c_b)
03650 {}
03651 else
03652 if(p[pixel[12]] < c_b)
03653 if(p[pixel[13]] < c_b)
03654 {}
03655 else
03656 continue;
03657 else
03658 continue;
03659 else
03660 if(p[pixel[12]] < c_b)
03661 if(p[pixel[13]] < c_b)
03662 if(p[pixel[14]] < c_b)
03663 {}
03664 else
03665 continue;
03666 else
03667 continue;
03668 else
03669 continue;
03670 else
03671 if(p[pixel[12]] < c_b)
03672 if(p[pixel[13]] < c_b)
03673 if(p[pixel[14]] < c_b)
03674 if(p[pixel[15]] < c_b)
03675 {}
03676 else
03677 continue;
03678 else
03679 continue;
03680 else
03681 continue;
03682 else
03683 continue;
03684 else
03685 continue;
03686 else
03687 continue;
03688 else
03689 continue;
03690 else
03691 continue;
03692 else
03693 continue;
03694 else
03695 if(p[pixel[10]] > cb)
03696 if(p[pixel[11]] > cb)
03697 if(p[pixel[12]] > cb)
03698 if(p[pixel[13]] > cb)
03699 if(p[pixel[14]] > cb)
03700 if(p[pixel[15]] > cb)
03701 {}
03702 else
03703 if(p[pixel[6]] > cb)
03704 if(p[pixel[7]] > cb)
03705 if(p[pixel[8]] > cb)
03706 if(p[pixel[9]] > cb)
03707 {}
03708 else
03709 continue;
03710 else
03711 continue;
03712 else
03713 continue;
03714 else
03715 continue;
03716 else
03717 if(p[pixel[5]] > cb)
03718 if(p[pixel[6]] > cb)
03719 if(p[pixel[7]] > cb)
03720 if(p[pixel[8]] > cb)
03721 if(p[pixel[9]] > cb)
03722 {}
03723 else
03724 continue;
03725 else
03726 continue;
03727 else
03728 continue;
03729 else
03730 continue;
03731 else
03732 continue;
03733 else
03734 if(p[pixel[4]] > cb)
03735 if(p[pixel[5]] > cb)
03736 if(p[pixel[6]] > cb)
03737 if(p[pixel[7]] > cb)
03738 if(p[pixel[8]] > cb)
03739 if(p[pixel[9]] > cb)
03740 {}
03741 else
03742 continue;
03743 else
03744 continue;
03745 else
03746 continue;
03747 else
03748 continue;
03749 else
03750 continue;
03751 else
03752 continue;
03753 else
03754 continue;
03755 else
03756 continue;
03757 else if(p[pixel[10]] < c_b)
03758 if(p[pixel[7]] < c_b)
03759 if(p[pixel[8]] < c_b)
03760 if(p[pixel[9]] < c_b)
03761 if(p[pixel[11]] < c_b)
03762 if(p[pixel[12]] < c_b)
03763 if(p[pixel[6]] < c_b)
03764 if(p[pixel[5]] < c_b)
03765 if(p[pixel[4]] < c_b)
03766 {}
03767 else
03768 if(p[pixel[13]] < c_b)
03769 {}
03770 else
03771 continue;
03772 else
03773 if(p[pixel[13]] < c_b)
03774 if(p[pixel[14]] < c_b)
03775 {}
03776 else
03777 continue;
03778 else
03779 continue;
03780 else
03781 if(p[pixel[13]] < c_b)
03782 if(p[pixel[14]] < c_b)
03783 if(p[pixel[15]] < c_b)
03784 {}
03785 else
03786 continue;
03787 else
03788 continue;
03789 else
03790 continue;
03791 else
03792 continue;
03793 else
03794 continue;
03795 else
03796 continue;
03797 else
03798 continue;
03799 else
03800 continue;
03801 else
03802 continue;
03803 else if(p[pixel[2]] < c_b)
03804 if(p[pixel[9]] > cb)
03805 if(p[pixel[10]] > cb)
03806 if(p[pixel[11]] > cb)
03807 if(p[pixel[12]] > cb)
03808 if(p[pixel[13]] > cb)
03809 if(p[pixel[14]] > cb)
03810 if(p[pixel[15]] > cb)
03811 {}
03812 else
03813 if(p[pixel[6]] > cb)
03814 if(p[pixel[7]] > cb)
03815 if(p[pixel[8]] > cb)
03816 {}
03817 else
03818 continue;
03819 else
03820 continue;
03821 else
03822 continue;
03823 else
03824 if(p[pixel[5]] > cb)
03825 if(p[pixel[6]] > cb)
03826 if(p[pixel[7]] > cb)
03827 if(p[pixel[8]] > cb)
03828 {}
03829 else
03830 continue;
03831 else
03832 continue;
03833 else
03834 continue;
03835 else
03836 continue;
03837 else
03838 if(p[pixel[4]] > cb)
03839 if(p[pixel[5]] > cb)
03840 if(p[pixel[6]] > cb)
03841 if(p[pixel[7]] > cb)
03842 if(p[pixel[8]] > cb)
03843 {}
03844 else
03845 continue;
03846 else
03847 continue;
03848 else
03849 continue;
03850 else
03851 continue;
03852 else
03853 continue;
03854 else
03855 if(p[pixel[3]] > cb)
03856 if(p[pixel[4]] > cb)
03857 if(p[pixel[5]] > cb)
03858 if(p[pixel[6]] > cb)
03859 if(p[pixel[7]] > cb)
03860 if(p[pixel[8]] > cb)
03861 {}
03862 else
03863 continue;
03864 else
03865 continue;
03866 else
03867 continue;
03868 else
03869 continue;
03870 else
03871 continue;
03872 else
03873 continue;
03874 else
03875 continue;
03876 else
03877 continue;
03878 else if(p[pixel[9]] < c_b)
03879 if(p[pixel[7]] < c_b)
03880 if(p[pixel[8]] < c_b)
03881 if(p[pixel[10]] < c_b)
03882 if(p[pixel[6]] < c_b)
03883 if(p[pixel[5]] < c_b)
03884 if(p[pixel[4]] < c_b)
03885 if(p[pixel[3]] < c_b)
03886 {}
03887 else
03888 if(p[pixel[11]] < c_b)
03889 if(p[pixel[12]] < c_b)
03890 {}
03891 else
03892 continue;
03893 else
03894 continue;
03895 else
03896 if(p[pixel[11]] < c_b)
03897 if(p[pixel[12]] < c_b)
03898 if(p[pixel[13]] < c_b)
03899 {}
03900 else
03901 continue;
03902 else
03903 continue;
03904 else
03905 continue;
03906 else
03907 if(p[pixel[11]] < c_b)
03908 if(p[pixel[12]] < c_b)
03909 if(p[pixel[13]] < c_b)
03910 if(p[pixel[14]] < c_b)
03911 {}
03912 else
03913 continue;
03914 else
03915 continue;
03916 else
03917 continue;
03918 else
03919 continue;
03920 else
03921 if(p[pixel[11]] < c_b)
03922 if(p[pixel[12]] < c_b)
03923 if(p[pixel[13]] < c_b)
03924 if(p[pixel[14]] < c_b)
03925 if(p[pixel[15]] < c_b)
03926 {}
03927 else
03928 continue;
03929 else
03930 continue;
03931 else
03932 continue;
03933 else
03934 continue;
03935 else
03936 continue;
03937 else
03938 continue;
03939 else
03940 continue;
03941 else
03942 continue;
03943 else
03944 continue;
03945 else
03946 if(p[pixel[9]] > cb)
03947 if(p[pixel[10]] > cb)
03948 if(p[pixel[11]] > cb)
03949 if(p[pixel[12]] > cb)
03950 if(p[pixel[13]] > cb)
03951 if(p[pixel[14]] > cb)
03952 if(p[pixel[15]] > cb)
03953 {}
03954 else
03955 if(p[pixel[6]] > cb)
03956 if(p[pixel[7]] > cb)
03957 if(p[pixel[8]] > cb)
03958 {}
03959 else
03960 continue;
03961 else
03962 continue;
03963 else
03964 continue;
03965 else
03966 if(p[pixel[5]] > cb)
03967 if(p[pixel[6]] > cb)
03968 if(p[pixel[7]] > cb)
03969 if(p[pixel[8]] > cb)
03970 {}
03971 else
03972 continue;
03973 else
03974 continue;
03975 else
03976 continue;
03977 else
03978 continue;
03979 else
03980 if(p[pixel[4]] > cb)
03981 if(p[pixel[5]] > cb)
03982 if(p[pixel[6]] > cb)
03983 if(p[pixel[7]] > cb)
03984 if(p[pixel[8]] > cb)
03985 {}
03986 else
03987 continue;
03988 else
03989 continue;
03990 else
03991 continue;
03992 else
03993 continue;
03994 else
03995 continue;
03996 else
03997 if(p[pixel[3]] > cb)
03998 if(p[pixel[4]] > cb)
03999 if(p[pixel[5]] > cb)
04000 if(p[pixel[6]] > cb)
04001 if(p[pixel[7]] > cb)
04002 if(p[pixel[8]] > cb)
04003 {}
04004 else
04005 continue;
04006 else
04007 continue;
04008 else
04009 continue;
04010 else
04011 continue;
04012 else
04013 continue;
04014 else
04015 continue;
04016 else
04017 continue;
04018 else
04019 continue;
04020 else if(p[pixel[9]] < c_b)
04021 if(p[pixel[7]] < c_b)
04022 if(p[pixel[8]] < c_b)
04023 if(p[pixel[10]] < c_b)
04024 if(p[pixel[11]] < c_b)
04025 if(p[pixel[6]] < c_b)
04026 if(p[pixel[5]] < c_b)
04027 if(p[pixel[4]] < c_b)
04028 if(p[pixel[3]] < c_b)
04029 {}
04030 else
04031 if(p[pixel[12]] < c_b)
04032 {}
04033 else
04034 continue;
04035 else
04036 if(p[pixel[12]] < c_b)
04037 if(p[pixel[13]] < c_b)
04038 {}
04039 else
04040 continue;
04041 else
04042 continue;
04043 else
04044 if(p[pixel[12]] < c_b)
04045 if(p[pixel[13]] < c_b)
04046 if(p[pixel[14]] < c_b)
04047 {}
04048 else
04049 continue;
04050 else
04051 continue;
04052 else
04053 continue;
04054 else
04055 if(p[pixel[12]] < c_b)
04056 if(p[pixel[13]] < c_b)
04057 if(p[pixel[14]] < c_b)
04058 if(p[pixel[15]] < c_b)
04059 {}
04060 else
04061 continue;
04062 else
04063 continue;
04064 else
04065 continue;
04066 else
04067 continue;
04068 else
04069 continue;
04070 else
04071 continue;
04072 else
04073 continue;
04074 else
04075 continue;
04076 else
04077 continue;
04078 else if(p[pixel[1]] < c_b)
04079 if(p[pixel[8]] > cb)
04080 if(p[pixel[9]] > cb)
04081 if(p[pixel[10]] > cb)
04082 if(p[pixel[11]] > cb)
04083 if(p[pixel[12]] > cb)
04084 if(p[pixel[13]] > cb)
04085 if(p[pixel[14]] > cb)
04086 if(p[pixel[15]] > cb)
04087 {}
04088 else
04089 if(p[pixel[6]] > cb)
04090 if(p[pixel[7]] > cb)
04091 {}
04092 else
04093 continue;
04094 else
04095 continue;
04096 else
04097 if(p[pixel[5]] > cb)
04098 if(p[pixel[6]] > cb)
04099 if(p[pixel[7]] > cb)
04100 {}
04101 else
04102 continue;
04103 else
04104 continue;
04105 else
04106 continue;
04107 else
04108 if(p[pixel[4]] > cb)
04109 if(p[pixel[5]] > cb)
04110 if(p[pixel[6]] > cb)
04111 if(p[pixel[7]] > cb)
04112 {}
04113 else
04114 continue;
04115 else
04116 continue;
04117 else
04118 continue;
04119 else
04120 continue;
04121 else
04122 if(p[pixel[3]] > cb)
04123 if(p[pixel[4]] > cb)
04124 if(p[pixel[5]] > cb)
04125 if(p[pixel[6]] > cb)
04126 if(p[pixel[7]] > cb)
04127 {}
04128 else
04129 continue;
04130 else
04131 continue;
04132 else
04133 continue;
04134 else
04135 continue;
04136 else
04137 continue;
04138 else
04139 if(p[pixel[2]] > cb)
04140 if(p[pixel[3]] > cb)
04141 if(p[pixel[4]] > cb)
04142 if(p[pixel[5]] > cb)
04143 if(p[pixel[6]] > cb)
04144 if(p[pixel[7]] > cb)
04145 {}
04146 else
04147 continue;
04148 else
04149 continue;
04150 else
04151 continue;
04152 else
04153 continue;
04154 else
04155 continue;
04156 else
04157 continue;
04158 else
04159 continue;
04160 else
04161 continue;
04162 else if(p[pixel[8]] < c_b)
04163 if(p[pixel[7]] < c_b)
04164 if(p[pixel[9]] < c_b)
04165 if(p[pixel[6]] < c_b)
04166 if(p[pixel[5]] < c_b)
04167 if(p[pixel[4]] < c_b)
04168 if(p[pixel[3]] < c_b)
04169 if(p[pixel[2]] < c_b)
04170 {}
04171 else
04172 if(p[pixel[10]] < c_b)
04173 if(p[pixel[11]] < c_b)
04174 {}
04175 else
04176 continue;
04177 else
04178 continue;
04179 else
04180 if(p[pixel[10]] < c_b)
04181 if(p[pixel[11]] < c_b)
04182 if(p[pixel[12]] < c_b)
04183 {}
04184 else
04185 continue;
04186 else
04187 continue;
04188 else
04189 continue;
04190 else
04191 if(p[pixel[10]] < c_b)
04192 if(p[pixel[11]] < c_b)
04193 if(p[pixel[12]] < c_b)
04194 if(p[pixel[13]] < c_b)
04195 {}
04196 else
04197 continue;
04198 else
04199 continue;
04200 else
04201 continue;
04202 else
04203 continue;
04204 else
04205 if(p[pixel[10]] < c_b)
04206 if(p[pixel[11]] < c_b)
04207 if(p[pixel[12]] < c_b)
04208 if(p[pixel[13]] < c_b)
04209 if(p[pixel[14]] < c_b)
04210 {}
04211 else
04212 continue;
04213 else
04214 continue;
04215 else
04216 continue;
04217 else
04218 continue;
04219 else
04220 continue;
04221 else
04222 if(p[pixel[10]] < c_b)
04223 if(p[pixel[11]] < c_b)
04224 if(p[pixel[12]] < c_b)
04225 if(p[pixel[13]] < c_b)
04226 if(p[pixel[14]] < c_b)
04227 if(p[pixel[15]] < c_b)
04228 {}
04229 else
04230 continue;
04231 else
04232 continue;
04233 else
04234 continue;
04235 else
04236 continue;
04237 else
04238 continue;
04239 else
04240 continue;
04241 else
04242 continue;
04243 else
04244 continue;
04245 else
04246 continue;
04247 else
04248 if(p[pixel[8]] > cb)
04249 if(p[pixel[9]] > cb)
04250 if(p[pixel[10]] > cb)
04251 if(p[pixel[11]] > cb)
04252 if(p[pixel[12]] > cb)
04253 if(p[pixel[13]] > cb)
04254 if(p[pixel[14]] > cb)
04255 if(p[pixel[15]] > cb)
04256 {}
04257 else
04258 if(p[pixel[6]] > cb)
04259 if(p[pixel[7]] > cb)
04260 {}
04261 else
04262 continue;
04263 else
04264 continue;
04265 else
04266 if(p[pixel[5]] > cb)
04267 if(p[pixel[6]] > cb)
04268 if(p[pixel[7]] > cb)
04269 {}
04270 else
04271 continue;
04272 else
04273 continue;
04274 else
04275 continue;
04276 else
04277 if(p[pixel[4]] > cb)
04278 if(p[pixel[5]] > cb)
04279 if(p[pixel[6]] > cb)
04280 if(p[pixel[7]] > cb)
04281 {}
04282 else
04283 continue;
04284 else
04285 continue;
04286 else
04287 continue;
04288 else
04289 continue;
04290 else
04291 if(p[pixel[3]] > cb)
04292 if(p[pixel[4]] > cb)
04293 if(p[pixel[5]] > cb)
04294 if(p[pixel[6]] > cb)
04295 if(p[pixel[7]] > cb)
04296 {}
04297 else
04298 continue;
04299 else
04300 continue;
04301 else
04302 continue;
04303 else
04304 continue;
04305 else
04306 continue;
04307 else
04308 if(p[pixel[2]] > cb)
04309 if(p[pixel[3]] > cb)
04310 if(p[pixel[4]] > cb)
04311 if(p[pixel[5]] > cb)
04312 if(p[pixel[6]] > cb)
04313 if(p[pixel[7]] > cb)
04314 {}
04315 else
04316 continue;
04317 else
04318 continue;
04319 else
04320 continue;
04321 else
04322 continue;
04323 else
04324 continue;
04325 else
04326 continue;
04327 else
04328 continue;
04329 else
04330 continue;
04331 else if(p[pixel[8]] < c_b)
04332 if(p[pixel[7]] < c_b)
04333 if(p[pixel[9]] < c_b)
04334 if(p[pixel[10]] < c_b)
04335 if(p[pixel[6]] < c_b)
04336 if(p[pixel[5]] < c_b)
04337 if(p[pixel[4]] < c_b)
04338 if(p[pixel[3]] < c_b)
04339 if(p[pixel[2]] < c_b)
04340 {}
04341 else
04342 if(p[pixel[11]] < c_b)
04343 {}
04344 else
04345 continue;
04346 else
04347 if(p[pixel[11]] < c_b)
04348 if(p[pixel[12]] < c_b)
04349 {}
04350 else
04351 continue;
04352 else
04353 continue;
04354 else
04355 if(p[pixel[11]] < c_b)
04356 if(p[pixel[12]] < c_b)
04357 if(p[pixel[13]] < c_b)
04358 {}
04359 else
04360 continue;
04361 else
04362 continue;
04363 else
04364 continue;
04365 else
04366 if(p[pixel[11]] < c_b)
04367 if(p[pixel[12]] < c_b)
04368 if(p[pixel[13]] < c_b)
04369 if(p[pixel[14]] < c_b)
04370 {}
04371 else
04372 continue;
04373 else
04374 continue;
04375 else
04376 continue;
04377 else
04378 continue;
04379 else
04380 if(p[pixel[11]] < c_b)
04381 if(p[pixel[12]] < c_b)
04382 if(p[pixel[13]] < c_b)
04383 if(p[pixel[14]] < c_b)
04384 if(p[pixel[15]] < c_b)
04385 {}
04386 else
04387 continue;
04388 else
04389 continue;
04390 else
04391 continue;
04392 else
04393 continue;
04394 else
04395 continue;
04396 else
04397 continue;
04398 else
04399 continue;
04400 else
04401 continue;
04402 else
04403 continue;
04404 else if(p[pixel[0]] < c_b)
04405 if(p[pixel[1]] > cb)
04406 if(p[pixel[8]] > cb)
04407 if(p[pixel[7]] > cb)
04408 if(p[pixel[9]] > cb)
04409 if(p[pixel[6]] > cb)
04410 if(p[pixel[5]] > cb)
04411 if(p[pixel[4]] > cb)
04412 if(p[pixel[3]] > cb)
04413 if(p[pixel[2]] > cb)
04414 {}
04415 else
04416 if(p[pixel[10]] > cb)
04417 if(p[pixel[11]] > cb)
04418 {}
04419 else
04420 continue;
04421 else
04422 continue;
04423 else
04424 if(p[pixel[10]] > cb)
04425 if(p[pixel[11]] > cb)
04426 if(p[pixel[12]] > cb)
04427 {}
04428 else
04429 continue;
04430 else
04431 continue;
04432 else
04433 continue;
04434 else
04435 if(p[pixel[10]] > cb)
04436 if(p[pixel[11]] > cb)
04437 if(p[pixel[12]] > cb)
04438 if(p[pixel[13]] > cb)
04439 {}
04440 else
04441 continue;
04442 else
04443 continue;
04444 else
04445 continue;
04446 else
04447 continue;
04448 else
04449 if(p[pixel[10]] > cb)
04450 if(p[pixel[11]] > cb)
04451 if(p[pixel[12]] > cb)
04452 if(p[pixel[13]] > cb)
04453 if(p[pixel[14]] > cb)
04454 {}
04455 else
04456 continue;
04457 else
04458 continue;
04459 else
04460 continue;
04461 else
04462 continue;
04463 else
04464 continue;
04465 else
04466 if(p[pixel[10]] > cb)
04467 if(p[pixel[11]] > cb)
04468 if(p[pixel[12]] > cb)
04469 if(p[pixel[13]] > cb)
04470 if(p[pixel[14]] > cb)
04471 if(p[pixel[15]] > cb)
04472 {}
04473 else
04474 continue;
04475 else
04476 continue;
04477 else
04478 continue;
04479 else
04480 continue;
04481 else
04482 continue;
04483 else
04484 continue;
04485 else
04486 continue;
04487 else
04488 continue;
04489 else if(p[pixel[8]] < c_b)
04490 if(p[pixel[9]] < c_b)
04491 if(p[pixel[10]] < c_b)
04492 if(p[pixel[11]] < c_b)
04493 if(p[pixel[12]] < c_b)
04494 if(p[pixel[13]] < c_b)
04495 if(p[pixel[14]] < c_b)
04496 if(p[pixel[15]] < c_b)
04497 {}
04498 else
04499 if(p[pixel[6]] < c_b)
04500 if(p[pixel[7]] < c_b)
04501 {}
04502 else
04503 continue;
04504 else
04505 continue;
04506 else
04507 if(p[pixel[5]] < c_b)
04508 if(p[pixel[6]] < c_b)
04509 if(p[pixel[7]] < c_b)
04510 {}
04511 else
04512 continue;
04513 else
04514 continue;
04515 else
04516 continue;
04517 else
04518 if(p[pixel[4]] < c_b)
04519 if(p[pixel[5]] < c_b)
04520 if(p[pixel[6]] < c_b)
04521 if(p[pixel[7]] < c_b)
04522 {}
04523 else
04524 continue;
04525 else
04526 continue;
04527 else
04528 continue;
04529 else
04530 continue;
04531 else
04532 if(p[pixel[3]] < c_b)
04533 if(p[pixel[4]] < c_b)
04534 if(p[pixel[5]] < c_b)
04535 if(p[pixel[6]] < c_b)
04536 if(p[pixel[7]] < c_b)
04537 {}
04538 else
04539 continue;
04540 else
04541 continue;
04542 else
04543 continue;
04544 else
04545 continue;
04546 else
04547 continue;
04548 else
04549 if(p[pixel[2]] < c_b)
04550 if(p[pixel[3]] < c_b)
04551 if(p[pixel[4]] < c_b)
04552 if(p[pixel[5]] < c_b)
04553 if(p[pixel[6]] < c_b)
04554 if(p[pixel[7]] < c_b)
04555 {}
04556 else
04557 continue;
04558 else
04559 continue;
04560 else
04561 continue;
04562 else
04563 continue;
04564 else
04565 continue;
04566 else
04567 continue;
04568 else
04569 continue;
04570 else
04571 continue;
04572 else
04573 continue;
04574 else if(p[pixel[1]] < c_b)
04575 if(p[pixel[2]] > cb)
04576 if(p[pixel[9]] > cb)
04577 if(p[pixel[7]] > cb)
04578 if(p[pixel[8]] > cb)
04579 if(p[pixel[10]] > cb)
04580 if(p[pixel[6]] > cb)
04581 if(p[pixel[5]] > cb)
04582 if(p[pixel[4]] > cb)
04583 if(p[pixel[3]] > cb)
04584 {}
04585 else
04586 if(p[pixel[11]] > cb)
04587 if(p[pixel[12]] > cb)
04588 {}
04589 else
04590 continue;
04591 else
04592 continue;
04593 else
04594 if(p[pixel[11]] > cb)
04595 if(p[pixel[12]] > cb)
04596 if(p[pixel[13]] > cb)
04597 {}
04598 else
04599 continue;
04600 else
04601 continue;
04602 else
04603 continue;
04604 else
04605 if(p[pixel[11]] > cb)
04606 if(p[pixel[12]] > cb)
04607 if(p[pixel[13]] > cb)
04608 if(p[pixel[14]] > cb)
04609 {}
04610 else
04611 continue;
04612 else
04613 continue;
04614 else
04615 continue;
04616 else
04617 continue;
04618 else
04619 if(p[pixel[11]] > cb)
04620 if(p[pixel[12]] > cb)
04621 if(p[pixel[13]] > cb)
04622 if(p[pixel[14]] > cb)
04623 if(p[pixel[15]] > cb)
04624 {}
04625 else
04626 continue;
04627 else
04628 continue;
04629 else
04630 continue;
04631 else
04632 continue;
04633 else
04634 continue;
04635 else
04636 continue;
04637 else
04638 continue;
04639 else
04640 continue;
04641 else if(p[pixel[9]] < c_b)
04642 if(p[pixel[10]] < c_b)
04643 if(p[pixel[11]] < c_b)
04644 if(p[pixel[12]] < c_b)
04645 if(p[pixel[13]] < c_b)
04646 if(p[pixel[14]] < c_b)
04647 if(p[pixel[15]] < c_b)
04648 {}
04649 else
04650 if(p[pixel[6]] < c_b)
04651 if(p[pixel[7]] < c_b)
04652 if(p[pixel[8]] < c_b)
04653 {}
04654 else
04655 continue;
04656 else
04657 continue;
04658 else
04659 continue;
04660 else
04661 if(p[pixel[5]] < c_b)
04662 if(p[pixel[6]] < c_b)
04663 if(p[pixel[7]] < c_b)
04664 if(p[pixel[8]] < c_b)
04665 {}
04666 else
04667 continue;
04668 else
04669 continue;
04670 else
04671 continue;
04672 else
04673 continue;
04674 else
04675 if(p[pixel[4]] < c_b)
04676 if(p[pixel[5]] < c_b)
04677 if(p[pixel[6]] < c_b)
04678 if(p[pixel[7]] < c_b)
04679 if(p[pixel[8]] < c_b)
04680 {}
04681 else
04682 continue;
04683 else
04684 continue;
04685 else
04686 continue;
04687 else
04688 continue;
04689 else
04690 continue;
04691 else
04692 if(p[pixel[3]] < c_b)
04693 if(p[pixel[4]] < c_b)
04694 if(p[pixel[5]] < c_b)
04695 if(p[pixel[6]] < c_b)
04696 if(p[pixel[7]] < c_b)
04697 if(p[pixel[8]] < c_b)
04698 {}
04699 else
04700 continue;
04701 else
04702 continue;
04703 else
04704 continue;
04705 else
04706 continue;
04707 else
04708 continue;
04709 else
04710 continue;
04711 else
04712 continue;
04713 else
04714 continue;
04715 else
04716 continue;
04717 else if(p[pixel[2]] < c_b)
04718 if(p[pixel[3]] > cb)
04719 if(p[pixel[10]] > cb)
04720 if(p[pixel[7]] > cb)
04721 if(p[pixel[8]] > cb)
04722 if(p[pixel[9]] > cb)
04723 if(p[pixel[11]] > cb)
04724 if(p[pixel[6]] > cb)
04725 if(p[pixel[5]] > cb)
04726 if(p[pixel[4]] > cb)
04727 {}
04728 else
04729 if(p[pixel[12]] > cb)
04730 if(p[pixel[13]] > cb)
04731 {}
04732 else
04733 continue;
04734 else
04735 continue;
04736 else
04737 if(p[pixel[12]] > cb)
04738 if(p[pixel[13]] > cb)
04739 if(p[pixel[14]] > cb)
04740 {}
04741 else
04742 continue;
04743 else
04744 continue;
04745 else
04746 continue;
04747 else
04748 if(p[pixel[12]] > cb)
04749 if(p[pixel[13]] > cb)
04750 if(p[pixel[14]] > cb)
04751 if(p[pixel[15]] > cb)
04752 {}
04753 else
04754 continue;
04755 else
04756 continue;
04757 else
04758 continue;
04759 else
04760 continue;
04761 else
04762 continue;
04763 else
04764 continue;
04765 else
04766 continue;
04767 else
04768 continue;
04769 else if(p[pixel[10]] < c_b)
04770 if(p[pixel[11]] < c_b)
04771 if(p[pixel[12]] < c_b)
04772 if(p[pixel[13]] < c_b)
04773 if(p[pixel[14]] < c_b)
04774 if(p[pixel[15]] < c_b)
04775 {}
04776 else
04777 if(p[pixel[6]] < c_b)
04778 if(p[pixel[7]] < c_b)
04779 if(p[pixel[8]] < c_b)
04780 if(p[pixel[9]] < c_b)
04781 {}
04782 else
04783 continue;
04784 else
04785 continue;
04786 else
04787 continue;
04788 else
04789 continue;
04790 else
04791 if(p[pixel[5]] < c_b)
04792 if(p[pixel[6]] < c_b)
04793 if(p[pixel[7]] < c_b)
04794 if(p[pixel[8]] < c_b)
04795 if(p[pixel[9]] < c_b)
04796 {}
04797 else
04798 continue;
04799 else
04800 continue;
04801 else
04802 continue;
04803 else
04804 continue;
04805 else
04806 continue;
04807 else
04808 if(p[pixel[4]] < c_b)
04809 if(p[pixel[5]] < c_b)
04810 if(p[pixel[6]] < c_b)
04811 if(p[pixel[7]] < c_b)
04812 if(p[pixel[8]] < c_b)
04813 if(p[pixel[9]] < c_b)
04814 {}
04815 else
04816 continue;
04817 else
04818 continue;
04819 else
04820 continue;
04821 else
04822 continue;
04823 else
04824 continue;
04825 else
04826 continue;
04827 else
04828 continue;
04829 else
04830 continue;
04831 else
04832 continue;
04833 else if(p[pixel[3]] < c_b)
04834 if(p[pixel[4]] > cb)
04835 if(p[pixel[13]] > cb)
04836 if(p[pixel[7]] > cb)
04837 if(p[pixel[8]] > cb)
04838 if(p[pixel[9]] > cb)
04839 if(p[pixel[10]] > cb)
04840 if(p[pixel[11]] > cb)
04841 if(p[pixel[12]] > cb)
04842 if(p[pixel[6]] > cb)
04843 if(p[pixel[5]] > cb)
04844 {}
04845 else
04846 if(p[pixel[14]] > cb)
04847 {}
04848 else
04849 continue;
04850 else
04851 if(p[pixel[14]] > cb)
04852 if(p[pixel[15]] > cb)
04853 {}
04854 else
04855 continue;
04856 else
04857 continue;
04858 else
04859 continue;
04860 else
04861 continue;
04862 else
04863 continue;
04864 else
04865 continue;
04866 else
04867 continue;
04868 else
04869 continue;
04870 else if(p[pixel[13]] < c_b)
04871 if(p[pixel[11]] > cb)
04872 if(p[pixel[5]] > cb)
04873 if(p[pixel[6]] > cb)
04874 if(p[pixel[7]] > cb)
04875 if(p[pixel[8]] > cb)
04876 if(p[pixel[9]] > cb)
04877 if(p[pixel[10]] > cb)
04878 if(p[pixel[12]] > cb)
04879 {}
04880 else
04881 continue;
04882 else
04883 continue;
04884 else
04885 continue;
04886 else
04887 continue;
04888 else
04889 continue;
04890 else
04891 continue;
04892 else
04893 continue;
04894 else if(p[pixel[11]] < c_b)
04895 if(p[pixel[12]] < c_b)
04896 if(p[pixel[14]] < c_b)
04897 if(p[pixel[15]] < c_b)
04898 {}
04899 else
04900 if(p[pixel[6]] < c_b)
04901 if(p[pixel[7]] < c_b)
04902 if(p[pixel[8]] < c_b)
04903 if(p[pixel[9]] < c_b)
04904 if(p[pixel[10]] < c_b)
04905 {}
04906 else
04907 continue;
04908 else
04909 continue;
04910 else
04911 continue;
04912 else
04913 continue;
04914 else
04915 continue;
04916 else
04917 if(p[pixel[5]] < c_b)
04918 if(p[pixel[6]] < c_b)
04919 if(p[pixel[7]] < c_b)
04920 if(p[pixel[8]] < c_b)
04921 if(p[pixel[9]] < c_b)
04922 if(p[pixel[10]] < c_b)
04923 {}
04924 else
04925 continue;
04926 else
04927 continue;
04928 else
04929 continue;
04930 else
04931 continue;
04932 else
04933 continue;
04934 else
04935 continue;
04936 else
04937 continue;
04938 else
04939 continue;
04940 else
04941 if(p[pixel[5]] > cb)
04942 if(p[pixel[6]] > cb)
04943 if(p[pixel[7]] > cb)
04944 if(p[pixel[8]] > cb)
04945 if(p[pixel[9]] > cb)
04946 if(p[pixel[10]] > cb)
04947 if(p[pixel[11]] > cb)
04948 if(p[pixel[12]] > cb)
04949 {}
04950 else
04951 continue;
04952 else
04953 continue;
04954 else
04955 continue;
04956 else
04957 continue;
04958 else
04959 continue;
04960 else
04961 continue;
04962 else
04963 continue;
04964 else
04965 continue;
04966 else if(p[pixel[4]] < c_b)
04967 if(p[pixel[5]] > cb)
04968 if(p[pixel[14]] > cb)
04969 if(p[pixel[7]] > cb)
04970 if(p[pixel[8]] > cb)
04971 if(p[pixel[9]] > cb)
04972 if(p[pixel[10]] > cb)
04973 if(p[pixel[11]] > cb)
04974 if(p[pixel[12]] > cb)
04975 if(p[pixel[13]] > cb)
04976 if(p[pixel[6]] > cb)
04977 {}
04978 else
04979 if(p[pixel[15]] > cb)
04980 {}
04981 else
04982 continue;
04983 else
04984 continue;
04985 else
04986 continue;
04987 else
04988 continue;
04989 else
04990 continue;
04991 else
04992 continue;
04993 else
04994 continue;
04995 else
04996 continue;
04997 else if(p[pixel[14]] < c_b)
04998 if(p[pixel[12]] > cb)
04999 if(p[pixel[6]] > cb)
05000 if(p[pixel[7]] > cb)
05001 if(p[pixel[8]] > cb)
05002 if(p[pixel[9]] > cb)
05003 if(p[pixel[10]] > cb)
05004 if(p[pixel[11]] > cb)
05005 if(p[pixel[13]] > cb)
05006 {}
05007 else
05008 continue;
05009 else
05010 continue;
05011 else
05012 continue;
05013 else
05014 continue;
05015 else
05016 continue;
05017 else
05018 continue;
05019 else
05020 continue;
05021 else if(p[pixel[12]] < c_b)
05022 if(p[pixel[13]] < c_b)
05023 if(p[pixel[15]] < c_b)
05024 {}
05025 else
05026 if(p[pixel[6]] < c_b)
05027 if(p[pixel[7]] < c_b)
05028 if(p[pixel[8]] < c_b)
05029 if(p[pixel[9]] < c_b)
05030 if(p[pixel[10]] < c_b)
05031 if(p[pixel[11]] < c_b)
05032 {}
05033 else
05034 continue;
05035 else
05036 continue;
05037 else
05038 continue;
05039 else
05040 continue;
05041 else
05042 continue;
05043 else
05044 continue;
05045 else
05046 continue;
05047 else
05048 continue;
05049 else
05050 if(p[pixel[6]] > cb)
05051 if(p[pixel[7]] > cb)
05052 if(p[pixel[8]] > cb)
05053 if(p[pixel[9]] > cb)
05054 if(p[pixel[10]] > cb)
05055 if(p[pixel[11]] > cb)
05056 if(p[pixel[12]] > cb)
05057 if(p[pixel[13]] > cb)
05058 {}
05059 else
05060 continue;
05061 else
05062 continue;
05063 else
05064 continue;
05065 else
05066 continue;
05067 else
05068 continue;
05069 else
05070 continue;
05071 else
05072 continue;
05073 else
05074 continue;
05075 else if(p[pixel[5]] < c_b)
05076 if(p[pixel[6]] > cb)
05077 if(p[pixel[15]] < c_b)
05078 if(p[pixel[13]] > cb)
05079 if(p[pixel[7]] > cb)
05080 if(p[pixel[8]] > cb)
05081 if(p[pixel[9]] > cb)
05082 if(p[pixel[10]] > cb)
05083 if(p[pixel[11]] > cb)
05084 if(p[pixel[12]] > cb)
05085 if(p[pixel[14]] > cb)
05086 {}
05087 else
05088 continue;
05089 else
05090 continue;
05091 else
05092 continue;
05093 else
05094 continue;
05095 else
05096 continue;
05097 else
05098 continue;
05099 else
05100 continue;
05101 else if(p[pixel[13]] < c_b)
05102 if(p[pixel[14]] < c_b)
05103 {}
05104 else
05105 continue;
05106 else
05107 continue;
05108 else
05109 if(p[pixel[7]] > cb)
05110 if(p[pixel[8]] > cb)
05111 if(p[pixel[9]] > cb)
05112 if(p[pixel[10]] > cb)
05113 if(p[pixel[11]] > cb)
05114 if(p[pixel[12]] > cb)
05115 if(p[pixel[13]] > cb)
05116 if(p[pixel[14]] > cb)
05117 {}
05118 else
05119 continue;
05120 else
05121 continue;
05122 else
05123 continue;
05124 else
05125 continue;
05126 else
05127 continue;
05128 else
05129 continue;
05130 else
05131 continue;
05132 else
05133 continue;
05134 else if(p[pixel[6]] < c_b)
05135 if(p[pixel[7]] > cb)
05136 if(p[pixel[14]] > cb)
05137 if(p[pixel[8]] > cb)
05138 if(p[pixel[9]] > cb)
05139 if(p[pixel[10]] > cb)
05140 if(p[pixel[11]] > cb)
05141 if(p[pixel[12]] > cb)
05142 if(p[pixel[13]] > cb)
05143 if(p[pixel[15]] > cb)
05144 {}
05145 else
05146 continue;
05147 else
05148 continue;
05149 else
05150 continue;
05151 else
05152 continue;
05153 else
05154 continue;
05155 else
05156 continue;
05157 else
05158 continue;
05159 else if(p[pixel[14]] < c_b)
05160 if(p[pixel[15]] < c_b)
05161 {}
05162 else
05163 continue;
05164 else
05165 continue;
05166 else if(p[pixel[7]] < c_b)
05167 if(p[pixel[8]] < c_b)
05168 {}
05169 else
05170 if(p[pixel[15]] < c_b)
05171 {}
05172 else
05173 continue;
05174 else
05175 if(p[pixel[14]] < c_b)
05176 if(p[pixel[15]] < c_b)
05177 {}
05178 else
05179 continue;
05180 else
05181 continue;
05182 else
05183 if(p[pixel[13]] > cb)
05184 if(p[pixel[7]] > cb)
05185 if(p[pixel[8]] > cb)
05186 if(p[pixel[9]] > cb)
05187 if(p[pixel[10]] > cb)
05188 if(p[pixel[11]] > cb)
05189 if(p[pixel[12]] > cb)
05190 if(p[pixel[14]] > cb)
05191 if(p[pixel[15]] > cb)
05192 {}
05193 else
05194 continue;
05195 else
05196 continue;
05197 else
05198 continue;
05199 else
05200 continue;
05201 else
05202 continue;
05203 else
05204 continue;
05205 else
05206 continue;
05207 else
05208 continue;
05209 else if(p[pixel[13]] < c_b)
05210 if(p[pixel[14]] < c_b)
05211 if(p[pixel[15]] < c_b)
05212 {}
05213 else
05214 continue;
05215 else
05216 continue;
05217 else
05218 continue;
05219 else
05220 if(p[pixel[12]] > cb)
05221 if(p[pixel[7]] > cb)
05222 if(p[pixel[8]] > cb)
05223 if(p[pixel[9]] > cb)
05224 if(p[pixel[10]] > cb)
05225 if(p[pixel[11]] > cb)
05226 if(p[pixel[13]] > cb)
05227 if(p[pixel[14]] > cb)
05228 if(p[pixel[6]] > cb)
05229 {}
05230 else
05231 if(p[pixel[15]] > cb)
05232 {}
05233 else
05234 continue;
05235 else
05236 continue;
05237 else
05238 continue;
05239 else
05240 continue;
05241 else
05242 continue;
05243 else
05244 continue;
05245 else
05246 continue;
05247 else
05248 continue;
05249 else if(p[pixel[12]] < c_b)
05250 if(p[pixel[13]] < c_b)
05251 if(p[pixel[14]] < c_b)
05252 if(p[pixel[15]] < c_b)
05253 {}
05254 else
05255 if(p[pixel[6]] < c_b)
05256 if(p[pixel[7]] < c_b)
05257 if(p[pixel[8]] < c_b)
05258 if(p[pixel[9]] < c_b)
05259 if(p[pixel[10]] < c_b)
05260 if(p[pixel[11]] < c_b)
05261 {}
05262 else
05263 continue;
05264 else
05265 continue;
05266 else
05267 continue;
05268 else
05269 continue;
05270 else
05271 continue;
05272 else
05273 continue;
05274 else
05275 continue;
05276 else
05277 continue;
05278 else
05279 continue;
05280 else
05281 if(p[pixel[11]] > cb)
05282 if(p[pixel[7]] > cb)
05283 if(p[pixel[8]] > cb)
05284 if(p[pixel[9]] > cb)
05285 if(p[pixel[10]] > cb)
05286 if(p[pixel[12]] > cb)
05287 if(p[pixel[13]] > cb)
05288 if(p[pixel[6]] > cb)
05289 if(p[pixel[5]] > cb)
05290 {}
05291 else
05292 if(p[pixel[14]] > cb)
05293 {}
05294 else
05295 continue;
05296 else
05297 if(p[pixel[14]] > cb)
05298 if(p[pixel[15]] > cb)
05299 {}
05300 else
05301 continue;
05302 else
05303 continue;
05304 else
05305 continue;
05306 else
05307 continue;
05308 else
05309 continue;
05310 else
05311 continue;
05312 else
05313 continue;
05314 else
05315 continue;
05316 else if(p[pixel[11]] < c_b)
05317 if(p[pixel[12]] < c_b)
05318 if(p[pixel[13]] < c_b)
05319 if(p[pixel[14]] < c_b)
05320 if(p[pixel[15]] < c_b)
05321 {}
05322 else
05323 if(p[pixel[6]] < c_b)
05324 if(p[pixel[7]] < c_b)
05325 if(p[pixel[8]] < c_b)
05326 if(p[pixel[9]] < c_b)
05327 if(p[pixel[10]] < c_b)
05328 {}
05329 else
05330 continue;
05331 else
05332 continue;
05333 else
05334 continue;
05335 else
05336 continue;
05337 else
05338 continue;
05339 else
05340 if(p[pixel[5]] < c_b)
05341 if(p[pixel[6]] < c_b)
05342 if(p[pixel[7]] < c_b)
05343 if(p[pixel[8]] < c_b)
05344 if(p[pixel[9]] < c_b)
05345 if(p[pixel[10]] < c_b)
05346 {}
05347 else
05348 continue;
05349 else
05350 continue;
05351 else
05352 continue;
05353 else
05354 continue;
05355 else
05356 continue;
05357 else
05358 continue;
05359 else
05360 continue;
05361 else
05362 continue;
05363 else
05364 continue;
05365 else
05366 if(p[pixel[10]] > cb)
05367 if(p[pixel[7]] > cb)
05368 if(p[pixel[8]] > cb)
05369 if(p[pixel[9]] > cb)
05370 if(p[pixel[11]] > cb)
05371 if(p[pixel[12]] > cb)
05372 if(p[pixel[6]] > cb)
05373 if(p[pixel[5]] > cb)
05374 if(p[pixel[4]] > cb)
05375 {}
05376 else
05377 if(p[pixel[13]] > cb)
05378 {}
05379 else
05380 continue;
05381 else
05382 if(p[pixel[13]] > cb)
05383 if(p[pixel[14]] > cb)
05384 {}
05385 else
05386 continue;
05387 else
05388 continue;
05389 else
05390 if(p[pixel[13]] > cb)
05391 if(p[pixel[14]] > cb)
05392 if(p[pixel[15]] > cb)
05393 {}
05394 else
05395 continue;
05396 else
05397 continue;
05398 else
05399 continue;
05400 else
05401 continue;
05402 else
05403 continue;
05404 else
05405 continue;
05406 else
05407 continue;
05408 else
05409 continue;
05410 else if(p[pixel[10]] < c_b)
05411 if(p[pixel[11]] < c_b)
05412 if(p[pixel[12]] < c_b)
05413 if(p[pixel[13]] < c_b)
05414 if(p[pixel[14]] < c_b)
05415 if(p[pixel[15]] < c_b)
05416 {}
05417 else
05418 if(p[pixel[6]] < c_b)
05419 if(p[pixel[7]] < c_b)
05420 if(p[pixel[8]] < c_b)
05421 if(p[pixel[9]] < c_b)
05422 {}
05423 else
05424 continue;
05425 else
05426 continue;
05427 else
05428 continue;
05429 else
05430 continue;
05431 else
05432 if(p[pixel[5]] < c_b)
05433 if(p[pixel[6]] < c_b)
05434 if(p[pixel[7]] < c_b)
05435 if(p[pixel[8]] < c_b)
05436 if(p[pixel[9]] < c_b)
05437 {}
05438 else
05439 continue;
05440 else
05441 continue;
05442 else
05443 continue;
05444 else
05445 continue;
05446 else
05447 continue;
05448 else
05449 if(p[pixel[4]] < c_b)
05450 if(p[pixel[5]] < c_b)
05451 if(p[pixel[6]] < c_b)
05452 if(p[pixel[7]] < c_b)
05453 if(p[pixel[8]] < c_b)
05454 if(p[pixel[9]] < c_b)
05455 {}
05456 else
05457 continue;
05458 else
05459 continue;
05460 else
05461 continue;
05462 else
05463 continue;
05464 else
05465 continue;
05466 else
05467 continue;
05468 else
05469 continue;
05470 else
05471 continue;
05472 else
05473 continue;
05474 else
05475 if(p[pixel[9]] > cb)
05476 if(p[pixel[7]] > cb)
05477 if(p[pixel[8]] > cb)
05478 if(p[pixel[10]] > cb)
05479 if(p[pixel[11]] > cb)
05480 if(p[pixel[6]] > cb)
05481 if(p[pixel[5]] > cb)
05482 if(p[pixel[4]] > cb)
05483 if(p[pixel[3]] > cb)
05484 {}
05485 else
05486 if(p[pixel[12]] > cb)
05487 {}
05488 else
05489 continue;
05490 else
05491 if(p[pixel[12]] > cb)
05492 if(p[pixel[13]] > cb)
05493 {}
05494 else
05495 continue;
05496 else
05497 continue;
05498 else
05499 if(p[pixel[12]] > cb)
05500 if(p[pixel[13]] > cb)
05501 if(p[pixel[14]] > cb)
05502 {}
05503 else
05504 continue;
05505 else
05506 continue;
05507 else
05508 continue;
05509 else
05510 if(p[pixel[12]] > cb)
05511 if(p[pixel[13]] > cb)
05512 if(p[pixel[14]] > cb)
05513 if(p[pixel[15]] > cb)
05514 {}
05515 else
05516 continue;
05517 else
05518 continue;
05519 else
05520 continue;
05521 else
05522 continue;
05523 else
05524 continue;
05525 else
05526 continue;
05527 else
05528 continue;
05529 else
05530 continue;
05531 else if(p[pixel[9]] < c_b)
05532 if(p[pixel[10]] < c_b)
05533 if(p[pixel[11]] < c_b)
05534 if(p[pixel[12]] < c_b)
05535 if(p[pixel[13]] < c_b)
05536 if(p[pixel[14]] < c_b)
05537 if(p[pixel[15]] < c_b)
05538 {}
05539 else
05540 if(p[pixel[6]] < c_b)
05541 if(p[pixel[7]] < c_b)
05542 if(p[pixel[8]] < c_b)
05543 {}
05544 else
05545 continue;
05546 else
05547 continue;
05548 else
05549 continue;
05550 else
05551 if(p[pixel[5]] < c_b)
05552 if(p[pixel[6]] < c_b)
05553 if(p[pixel[7]] < c_b)
05554 if(p[pixel[8]] < c_b)
05555 {}
05556 else
05557 continue;
05558 else
05559 continue;
05560 else
05561 continue;
05562 else
05563 continue;
05564 else
05565 if(p[pixel[4]] < c_b)
05566 if(p[pixel[5]] < c_b)
05567 if(p[pixel[6]] < c_b)
05568 if(p[pixel[7]] < c_b)
05569 if(p[pixel[8]] < c_b)
05570 {}
05571 else
05572 continue;
05573 else
05574 continue;
05575 else
05576 continue;
05577 else
05578 continue;
05579 else
05580 continue;
05581 else
05582 if(p[pixel[3]] < c_b)
05583 if(p[pixel[4]] < c_b)
05584 if(p[pixel[5]] < c_b)
05585 if(p[pixel[6]] < c_b)
05586 if(p[pixel[7]] < c_b)
05587 if(p[pixel[8]] < c_b)
05588 {}
05589 else
05590 continue;
05591 else
05592 continue;
05593 else
05594 continue;
05595 else
05596 continue;
05597 else
05598 continue;
05599 else
05600 continue;
05601 else
05602 continue;
05603 else
05604 continue;
05605 else
05606 continue;
05607 else
05608 if(p[pixel[8]] > cb)
05609 if(p[pixel[7]] > cb)
05610 if(p[pixel[9]] > cb)
05611 if(p[pixel[10]] > cb)
05612 if(p[pixel[6]] > cb)
05613 if(p[pixel[5]] > cb)
05614 if(p[pixel[4]] > cb)
05615 if(p[pixel[3]] > cb)
05616 if(p[pixel[2]] > cb)
05617 {}
05618 else
05619 if(p[pixel[11]] > cb)
05620 {}
05621 else
05622 continue;
05623 else
05624 if(p[pixel[11]] > cb)
05625 if(p[pixel[12]] > cb)
05626 {}
05627 else
05628 continue;
05629 else
05630 continue;
05631 else
05632 if(p[pixel[11]] > cb)
05633 if(p[pixel[12]] > cb)
05634 if(p[pixel[13]] > cb)
05635 {}
05636 else
05637 continue;
05638 else
05639 continue;
05640 else
05641 continue;
05642 else
05643 if(p[pixel[11]] > cb)
05644 if(p[pixel[12]] > cb)
05645 if(p[pixel[13]] > cb)
05646 if(p[pixel[14]] > cb)
05647 {}
05648 else
05649 continue;
05650 else
05651 continue;
05652 else
05653 continue;
05654 else
05655 continue;
05656 else
05657 if(p[pixel[11]] > cb)
05658 if(p[pixel[12]] > cb)
05659 if(p[pixel[13]] > cb)
05660 if(p[pixel[14]] > cb)
05661 if(p[pixel[15]] > cb)
05662 {}
05663 else
05664 continue;
05665 else
05666 continue;
05667 else
05668 continue;
05669 else
05670 continue;
05671 else
05672 continue;
05673 else
05674 continue;
05675 else
05676 continue;
05677 else
05678 continue;
05679 else if(p[pixel[8]] < c_b)
05680 if(p[pixel[9]] < c_b)
05681 if(p[pixel[10]] < c_b)
05682 if(p[pixel[11]] < c_b)
05683 if(p[pixel[12]] < c_b)
05684 if(p[pixel[13]] < c_b)
05685 if(p[pixel[14]] < c_b)
05686 if(p[pixel[15]] < c_b)
05687 {}
05688 else
05689 if(p[pixel[6]] < c_b)
05690 if(p[pixel[7]] < c_b)
05691 {}
05692 else
05693 continue;
05694 else
05695 continue;
05696 else
05697 if(p[pixel[5]] < c_b)
05698 if(p[pixel[6]] < c_b)
05699 if(p[pixel[7]] < c_b)
05700 {}
05701 else
05702 continue;
05703 else
05704 continue;
05705 else
05706 continue;
05707 else
05708 if(p[pixel[4]] < c_b)
05709 if(p[pixel[5]] < c_b)
05710 if(p[pixel[6]] < c_b)
05711 if(p[pixel[7]] < c_b)
05712 {}
05713 else
05714 continue;
05715 else
05716 continue;
05717 else
05718 continue;
05719 else
05720 continue;
05721 else
05722 if(p[pixel[3]] < c_b)
05723 if(p[pixel[4]] < c_b)
05724 if(p[pixel[5]] < c_b)
05725 if(p[pixel[6]] < c_b)
05726 if(p[pixel[7]] < c_b)
05727 {}
05728 else
05729 continue;
05730 else
05731 continue;
05732 else
05733 continue;
05734 else
05735 continue;
05736 else
05737 continue;
05738 else
05739 if(p[pixel[2]] < c_b)
05740 if(p[pixel[3]] < c_b)
05741 if(p[pixel[4]] < c_b)
05742 if(p[pixel[5]] < c_b)
05743 if(p[pixel[6]] < c_b)
05744 if(p[pixel[7]] < c_b)
05745 {}
05746 else
05747 continue;
05748 else
05749 continue;
05750 else
05751 continue;
05752 else
05753 continue;
05754 else
05755 continue;
05756 else
05757 continue;
05758 else
05759 continue;
05760 else
05761 continue;
05762 else
05763 continue;
05764 else
05765 if(p[pixel[7]] > cb)
05766 if(p[pixel[8]] > cb)
05767 if(p[pixel[9]] > cb)
05768 if(p[pixel[6]] > cb)
05769 if(p[pixel[5]] > cb)
05770 if(p[pixel[4]] > cb)
05771 if(p[pixel[3]] > cb)
05772 if(p[pixel[2]] > cb)
05773 if(p[pixel[1]] > cb)
05774 {}
05775 else
05776 if(p[pixel[10]] > cb)
05777 {}
05778 else
05779 continue;
05780 else
05781 if(p[pixel[10]] > cb)
05782 if(p[pixel[11]] > cb)
05783 {}
05784 else
05785 continue;
05786 else
05787 continue;
05788 else
05789 if(p[pixel[10]] > cb)
05790 if(p[pixel[11]] > cb)
05791 if(p[pixel[12]] > cb)
05792 {}
05793 else
05794 continue;
05795 else
05796 continue;
05797 else
05798 continue;
05799 else
05800 if(p[pixel[10]] > cb)
05801 if(p[pixel[11]] > cb)
05802 if(p[pixel[12]] > cb)
05803 if(p[pixel[13]] > cb)
05804 {}
05805 else
05806 continue;
05807 else
05808 continue;
05809 else
05810 continue;
05811 else
05812 continue;
05813 else
05814 if(p[pixel[10]] > cb)
05815 if(p[pixel[11]] > cb)
05816 if(p[pixel[12]] > cb)
05817 if(p[pixel[13]] > cb)
05818 if(p[pixel[14]] > cb)
05819 {}
05820 else
05821 continue;
05822 else
05823 continue;
05824 else
05825 continue;
05826 else
05827 continue;
05828 else
05829 continue;
05830 else
05831 if(p[pixel[10]] > cb)
05832 if(p[pixel[11]] > cb)
05833 if(p[pixel[12]] > cb)
05834 if(p[pixel[13]] > cb)
05835 if(p[pixel[14]] > cb)
05836 if(p[pixel[15]] > cb)
05837 {}
05838 else
05839 continue;
05840 else
05841 continue;
05842 else
05843 continue;
05844 else
05845 continue;
05846 else
05847 continue;
05848 else
05849 continue;
05850 else
05851 continue;
05852 else
05853 continue;
05854 else if(p[pixel[7]] < c_b)
05855 if(p[pixel[8]] < c_b)
05856 if(p[pixel[9]] < c_b)
05857 if(p[pixel[6]] < c_b)
05858 if(p[pixel[5]] < c_b)
05859 if(p[pixel[4]] < c_b)
05860 if(p[pixel[3]] < c_b)
05861 if(p[pixel[2]] < c_b)
05862 if(p[pixel[1]] < c_b)
05863 {}
05864 else
05865 if(p[pixel[10]] < c_b)
05866 {}
05867 else
05868 continue;
05869 else
05870 if(p[pixel[10]] < c_b)
05871 if(p[pixel[11]] < c_b)
05872 {}
05873 else
05874 continue;
05875 else
05876 continue;
05877 else
05878 if(p[pixel[10]] < c_b)
05879 if(p[pixel[11]] < c_b)
05880 if(p[pixel[12]] < c_b)
05881 {}
05882 else
05883 continue;
05884 else
05885 continue;
05886 else
05887 continue;
05888 else
05889 if(p[pixel[10]] < c_b)
05890 if(p[pixel[11]] < c_b)
05891 if(p[pixel[12]] < c_b)
05892 if(p[pixel[13]] < c_b)
05893 {}
05894 else
05895 continue;
05896 else
05897 continue;
05898 else
05899 continue;
05900 else
05901 continue;
05902 else
05903 if(p[pixel[10]] < c_b)
05904 if(p[pixel[11]] < c_b)
05905 if(p[pixel[12]] < c_b)
05906 if(p[pixel[13]] < c_b)
05907 if(p[pixel[14]] < c_b)
05908 {}
05909 else
05910 continue;
05911 else
05912 continue;
05913 else
05914 continue;
05915 else
05916 continue;
05917 else
05918 continue;
05919 else
05920 if(p[pixel[10]] < c_b)
05921 if(p[pixel[11]] < c_b)
05922 if(p[pixel[12]] < c_b)
05923 if(p[pixel[13]] < c_b)
05924 if(p[pixel[14]] < c_b)
05925 if(p[pixel[15]] < c_b)
05926 {}
05927 else
05928 continue;
05929 else
05930 continue;
05931 else
05932 continue;
05933 else
05934 continue;
05935 else
05936 continue;
05937 else
05938 continue;
05939 else
05940 continue;
05941 else
05942 continue;
05943 else
05944 continue;
05945 ret_corners.push_back(Point(x,y));
05946 }
05947 }
05948
05949
05950 #define Compare(X, Y) ((X)>=(Y))
05951
05952
05953
05954 static void fastNonmaxSuppression(const vector<Point>& corners,
05955 const vector<int>& scores,
05956 vector<KeyPoint>& ret_nonmax)
05957 {
05958 int i, j, num_corners = (int)corners.size();
05959
05960
05961 int point_above = 0;
05962 int point_below = 0;
05963
05964 ret_nonmax.clear();
05965 if(num_corners < 1)
05966 return;
05967
05968
05969
05970
05971 int last_row = corners[num_corners-1].y;
05972 vector<int> row_start(last_row+1);
05973
05974 for(i=0; i < last_row+1; i++)
05975 row_start[i] = -1;
05976
05977 int prev_row = -1;
05978 for(i=0; i< num_corners; i++)
05979 if(corners[i].y != prev_row)
05980 {
05981 row_start[corners[i].y] = i;
05982 prev_row = corners[i].y;
05983 }
05984
05985 ret_nonmax.reserve(num_corners);
05986 for(i = 0; i < num_corners; i++)
05987 {
05988 int score = scores[i];
05989 Point pos = corners[i];
05990
05991
05992 if(i > 0 && corners[i-1].x == pos.x-1 && corners[i-1].y == pos.y && Compare(scores[i-1], score))
05993 continue;
05994
05995
05996 if(i < num_corners-1 && corners[i+1].x == pos.x+1 && corners[i+1].y == pos.y && Compare(scores[i+1], score))
05997 continue;
05998
05999 bool suppressed = false;
06000
06001 if(pos.y != 0 && row_start[pos.y - 1] != -1)
06002 {
06003
06004 if(corners[point_above].y < pos.y - 1)
06005 point_above = row_start[pos.y-1];
06006
06007
06008 for(; corners[point_above].y < pos.y && corners[point_above].x < pos.x - 1; point_above++)
06009 ;
06010
06011 for(j=point_above; corners[j].y < pos.y && corners[j].x <= pos.x + 1; j++)
06012 {
06013 int x = corners[j].x;
06014 if( (x == pos.x - 1 || x ==pos.x || x == pos.x+1) && Compare(scores[j], score))
06015 {
06016 suppressed = true;
06017 break;
06018 }
06019 }
06020 if( suppressed )
06021 continue;
06022 }
06023
06024
06025 if(pos.y != last_row && row_start[pos.y + 1] != -1 && point_below < num_corners)
06026 {
06027 if(corners[point_below].y < pos.y + 1)
06028 point_below = row_start[pos.y+1];
06029
06030
06031 for(; point_below < num_corners && corners[point_below].y == pos.y+1
06032 && corners[point_below].x < pos.x - 1; point_below++)
06033 ;
06034
06035 for(j=point_below; j < num_corners && corners[j].y == pos.y+1 && corners[j].x <= pos.x + 1; j++)
06036 {
06037 int x = corners[j].x;
06038 if( (x == pos.x - 1 || x ==pos.x || x == pos.x+1) && Compare(scores[j],score))
06039 {
06040 suppressed = true;
06041 break;
06042 }
06043 }
06044 if( suppressed )
06045 continue;
06046 }
06047
06048 ret_nonmax.push_back(KeyPoint(corners[i].x, corners[i].y, (float)score));
06049 }
06050 }
06051
06052 void FAST(const uint8_t* image, int width, int height, int row_stride,
06053 vector<KeyPoint>* keypoints, int threshold, bool nonmax_suppression )
06054 {
06055 vector<Point> corners;
06056 fast9Detect(image, width, height, row_stride, corners, threshold);
06057
06058 if(nonmax_suppression)
06059 {
06060 vector<int> scores;
06061 fast9ComputeScores(image, width, height, row_stride, corners, scores, threshold);
06062 fastNonmaxSuppression(corners, scores, *keypoints);
06063 }
06064 else
06065 {
06066 size_t i, n = corners.size();
06067 keypoints->resize(n);
06068 for( i = 0; i < n; i++ )
06069 (*keypoints)[i] = KeyPoint(corners[i].x, corners[i].y, 0);
06070 }
06071 }
06072
06073 }