1 module dcv.features.corner.fast.fast_11; 2 3 /* 4 Authors: Edward Rosten 5 Copyright: Copyright (c) 2006, 2008 Edward Rosten, All rights reserved. 6 7 Additional notice: 8 Module integrates FAST implementation present in the Edward Rosten's 9 github repository: https://github.com/edrosten/fast-C-src 10 */ 11 12 import core.stdc.stdlib : malloc, free, realloc; 13 14 import dcv.features.corner.fast.base; 15 16 17 int fast11_corner_score(const ubyte* p, const int *pixel, int bstart) 18 { 19 int bmin = bstart; 20 int bmax = 255; 21 int b = (bmax + bmin)/2; 22 23 /*Compute the score using binary search*/ 24 for(;;) 25 { 26 int cb = *p + b; 27 int c_b= *p - b; 28 29 30 if( p[pixel[0]] > cb) 31 if( p[pixel[1]] > cb) 32 if( p[pixel[2]] > cb) 33 if( p[pixel[3]] > cb) 34 if( p[pixel[4]] > cb) 35 if( p[pixel[5]] > cb) 36 if( p[pixel[6]] > cb) 37 if( p[pixel[7]] > cb) 38 if( p[pixel[8]] > cb) 39 if( p[pixel[9]] > cb) 40 if( p[pixel[10]] > cb) 41 goto is_a_corner; 42 else 43 if( p[pixel[15]] > cb) 44 goto is_a_corner; 45 else 46 goto is_not_a_corner; 47 else 48 if( p[pixel[14]] > cb) 49 if( p[pixel[15]] > cb) 50 goto is_a_corner; 51 else 52 goto is_not_a_corner; 53 else 54 goto is_not_a_corner; 55 else 56 if( p[pixel[13]] > cb) 57 if( p[pixel[14]] > cb) 58 if( p[pixel[15]] > cb) 59 goto is_a_corner; 60 else 61 goto is_not_a_corner; 62 else 63 goto is_not_a_corner; 64 else 65 goto is_not_a_corner; 66 else 67 if( p[pixel[12]] > cb) 68 if( p[pixel[13]] > cb) 69 if( p[pixel[14]] > cb) 70 if( p[pixel[15]] > cb) 71 goto is_a_corner; 72 else 73 goto is_not_a_corner; 74 else 75 goto is_not_a_corner; 76 else 77 goto is_not_a_corner; 78 else 79 goto is_not_a_corner; 80 else 81 if( p[pixel[11]] > cb) 82 if( p[pixel[12]] > cb) 83 if( p[pixel[13]] > cb) 84 if( p[pixel[14]] > cb) 85 if( p[pixel[15]] > cb) 86 goto is_a_corner; 87 else 88 goto is_not_a_corner; 89 else 90 goto is_not_a_corner; 91 else 92 goto is_not_a_corner; 93 else 94 goto is_not_a_corner; 95 else 96 goto is_not_a_corner; 97 else if( p[pixel[5]] < c_b) 98 if( p[pixel[10]] > cb) 99 if( p[pixel[11]] > cb) 100 if( p[pixel[12]] > cb) 101 if( p[pixel[13]] > cb) 102 if( p[pixel[14]] > cb) 103 if( p[pixel[15]] > cb) 104 goto is_a_corner; 105 else 106 goto is_not_a_corner; 107 else 108 goto is_not_a_corner; 109 else 110 goto is_not_a_corner; 111 else 112 goto is_not_a_corner; 113 else 114 goto is_not_a_corner; 115 else if( p[pixel[10]] < c_b) 116 if( p[pixel[6]] < c_b) 117 if( p[pixel[7]] < c_b) 118 if( p[pixel[8]] < c_b) 119 if( p[pixel[9]] < c_b) 120 if( p[pixel[11]] < c_b) 121 if( p[pixel[12]] < c_b) 122 if( p[pixel[13]] < c_b) 123 if( p[pixel[14]] < c_b) 124 if( p[pixel[15]] < c_b) 125 goto is_a_corner; 126 else 127 goto is_not_a_corner; 128 else 129 goto is_not_a_corner; 130 else 131 goto is_not_a_corner; 132 else 133 goto is_not_a_corner; 134 else 135 goto is_not_a_corner; 136 else 137 goto is_not_a_corner; 138 else 139 goto is_not_a_corner; 140 else 141 goto is_not_a_corner; 142 else 143 goto is_not_a_corner; 144 else 145 goto is_not_a_corner; 146 else 147 if( p[pixel[10]] > cb) 148 if( p[pixel[11]] > cb) 149 if( p[pixel[12]] > cb) 150 if( p[pixel[13]] > cb) 151 if( p[pixel[14]] > cb) 152 if( p[pixel[15]] > cb) 153 goto is_a_corner; 154 else 155 goto is_not_a_corner; 156 else 157 goto is_not_a_corner; 158 else 159 goto is_not_a_corner; 160 else 161 goto is_not_a_corner; 162 else 163 goto is_not_a_corner; 164 else 165 goto is_not_a_corner; 166 else if( p[pixel[4]] < c_b) 167 if( p[pixel[15]] > cb) 168 if( p[pixel[9]] > cb) 169 if( p[pixel[10]] > cb) 170 if( p[pixel[11]] > cb) 171 if( p[pixel[12]] > cb) 172 if( p[pixel[13]] > cb) 173 if( p[pixel[14]] > cb) 174 goto is_a_corner; 175 else 176 goto is_not_a_corner; 177 else 178 goto is_not_a_corner; 179 else 180 goto is_not_a_corner; 181 else 182 goto is_not_a_corner; 183 else 184 goto is_not_a_corner; 185 else if( p[pixel[9]] < c_b) 186 if( p[pixel[5]] < c_b) 187 if( p[pixel[6]] < c_b) 188 if( p[pixel[7]] < c_b) 189 if( p[pixel[8]] < c_b) 190 if( p[pixel[10]] < c_b) 191 if( p[pixel[11]] < c_b) 192 if( p[pixel[12]] < c_b) 193 if( p[pixel[13]] < c_b) 194 if( p[pixel[14]] < c_b) 195 goto is_a_corner; 196 else 197 goto is_not_a_corner; 198 else 199 goto is_not_a_corner; 200 else 201 goto is_not_a_corner; 202 else 203 goto is_not_a_corner; 204 else 205 goto is_not_a_corner; 206 else 207 goto is_not_a_corner; 208 else 209 goto is_not_a_corner; 210 else 211 goto is_not_a_corner; 212 else 213 goto is_not_a_corner; 214 else 215 goto is_not_a_corner; 216 else 217 if( p[pixel[5]] < c_b) 218 if( p[pixel[6]] < c_b) 219 if( p[pixel[7]] < c_b) 220 if( p[pixel[8]] < c_b) 221 if( p[pixel[9]] < c_b) 222 if( p[pixel[10]] < c_b) 223 if( p[pixel[11]] < c_b) 224 if( p[pixel[12]] < c_b) 225 if( p[pixel[13]] < c_b) 226 if( p[pixel[14]] < c_b) 227 goto is_a_corner; 228 else 229 goto is_not_a_corner; 230 else 231 goto is_not_a_corner; 232 else 233 goto is_not_a_corner; 234 else 235 goto is_not_a_corner; 236 else 237 goto is_not_a_corner; 238 else 239 goto is_not_a_corner; 240 else 241 goto is_not_a_corner; 242 else 243 goto is_not_a_corner; 244 else 245 goto is_not_a_corner; 246 else 247 goto is_not_a_corner; 248 else 249 if( p[pixel[9]] > cb) 250 if( p[pixel[10]] > cb) 251 if( p[pixel[11]] > cb) 252 if( p[pixel[12]] > cb) 253 if( p[pixel[13]] > cb) 254 if( p[pixel[14]] > cb) 255 if( p[pixel[15]] > cb) 256 goto is_a_corner; 257 else 258 goto is_not_a_corner; 259 else 260 goto is_not_a_corner; 261 else 262 goto is_not_a_corner; 263 else 264 goto is_not_a_corner; 265 else 266 goto is_not_a_corner; 267 else 268 goto is_not_a_corner; 269 else if( p[pixel[9]] < c_b) 270 if( p[pixel[5]] < c_b) 271 if( p[pixel[6]] < c_b) 272 if( p[pixel[7]] < c_b) 273 if( p[pixel[8]] < c_b) 274 if( p[pixel[10]] < c_b) 275 if( p[pixel[11]] < c_b) 276 if( p[pixel[12]] < c_b) 277 if( p[pixel[13]] < c_b) 278 if( p[pixel[14]] < c_b) 279 if( p[pixel[15]] < c_b) 280 goto is_a_corner; 281 else 282 goto is_not_a_corner; 283 else 284 goto is_not_a_corner; 285 else 286 goto is_not_a_corner; 287 else 288 goto is_not_a_corner; 289 else 290 goto is_not_a_corner; 291 else 292 goto is_not_a_corner; 293 else 294 goto is_not_a_corner; 295 else 296 goto is_not_a_corner; 297 else 298 goto is_not_a_corner; 299 else 300 goto is_not_a_corner; 301 else 302 goto is_not_a_corner; 303 else if( p[pixel[3]] < c_b) 304 if( p[pixel[14]] > cb) 305 if( p[pixel[8]] > cb) 306 if( p[pixel[9]] > cb) 307 if( p[pixel[10]] > cb) 308 if( p[pixel[11]] > cb) 309 if( p[pixel[12]] > cb) 310 if( p[pixel[13]] > cb) 311 if( p[pixel[15]] > cb) 312 goto is_a_corner; 313 else 314 if( p[pixel[4]] > cb) 315 if( p[pixel[5]] > cb) 316 if( p[pixel[6]] > cb) 317 if( p[pixel[7]] > cb) 318 goto is_a_corner; 319 else 320 goto is_not_a_corner; 321 else 322 goto is_not_a_corner; 323 else 324 goto is_not_a_corner; 325 else 326 goto is_not_a_corner; 327 else 328 goto is_not_a_corner; 329 else 330 goto is_not_a_corner; 331 else 332 goto is_not_a_corner; 333 else 334 goto is_not_a_corner; 335 else 336 goto is_not_a_corner; 337 else if( p[pixel[8]] < c_b) 338 if( p[pixel[4]] < c_b) 339 if( p[pixel[5]] < c_b) 340 if( p[pixel[6]] < c_b) 341 if( p[pixel[7]] < c_b) 342 if( p[pixel[9]] < c_b) 343 if( p[pixel[10]] < c_b) 344 if( p[pixel[11]] < c_b) 345 if( p[pixel[12]] < c_b) 346 if( p[pixel[13]] < c_b) 347 goto is_a_corner; 348 else 349 goto is_not_a_corner; 350 else 351 goto is_not_a_corner; 352 else 353 goto is_not_a_corner; 354 else 355 goto is_not_a_corner; 356 else 357 goto is_not_a_corner; 358 else 359 goto is_not_a_corner; 360 else 361 goto is_not_a_corner; 362 else 363 goto is_not_a_corner; 364 else 365 goto is_not_a_corner; 366 else 367 goto is_not_a_corner; 368 else if( p[pixel[14]] < c_b) 369 if( p[pixel[5]] < c_b) 370 if( p[pixel[6]] < c_b) 371 if( p[pixel[7]] < c_b) 372 if( p[pixel[8]] < c_b) 373 if( p[pixel[9]] < c_b) 374 if( p[pixel[10]] < c_b) 375 if( p[pixel[11]] < c_b) 376 if( p[pixel[12]] < c_b) 377 if( p[pixel[13]] < c_b) 378 if( p[pixel[4]] < c_b) 379 goto is_a_corner; 380 else 381 if( p[pixel[15]] < c_b) 382 goto is_a_corner; 383 else 384 goto is_not_a_corner; 385 else 386 goto is_not_a_corner; 387 else 388 goto is_not_a_corner; 389 else 390 goto is_not_a_corner; 391 else 392 goto is_not_a_corner; 393 else 394 goto is_not_a_corner; 395 else 396 goto is_not_a_corner; 397 else 398 goto is_not_a_corner; 399 else 400 goto is_not_a_corner; 401 else 402 goto is_not_a_corner; 403 else 404 if( p[pixel[4]] < c_b) 405 if( p[pixel[5]] < c_b) 406 if( p[pixel[6]] < c_b) 407 if( p[pixel[7]] < c_b) 408 if( p[pixel[8]] < c_b) 409 if( p[pixel[9]] < c_b) 410 if( p[pixel[10]] < c_b) 411 if( p[pixel[11]] < c_b) 412 if( p[pixel[12]] < c_b) 413 if( p[pixel[13]] < c_b) 414 goto is_a_corner; 415 else 416 goto is_not_a_corner; 417 else 418 goto is_not_a_corner; 419 else 420 goto is_not_a_corner; 421 else 422 goto is_not_a_corner; 423 else 424 goto is_not_a_corner; 425 else 426 goto is_not_a_corner; 427 else 428 goto is_not_a_corner; 429 else 430 goto is_not_a_corner; 431 else 432 goto is_not_a_corner; 433 else 434 goto is_not_a_corner; 435 else 436 if( p[pixel[8]] > cb) 437 if( p[pixel[9]] > cb) 438 if( p[pixel[10]] > cb) 439 if( p[pixel[11]] > cb) 440 if( p[pixel[12]] > cb) 441 if( p[pixel[13]] > cb) 442 if( p[pixel[14]] > cb) 443 if( p[pixel[15]] > cb) 444 goto is_a_corner; 445 else 446 if( p[pixel[4]] > cb) 447 if( p[pixel[5]] > cb) 448 if( p[pixel[6]] > cb) 449 if( p[pixel[7]] > cb) 450 goto is_a_corner; 451 else 452 goto is_not_a_corner; 453 else 454 goto is_not_a_corner; 455 else 456 goto is_not_a_corner; 457 else 458 goto is_not_a_corner; 459 else 460 goto is_not_a_corner; 461 else 462 goto is_not_a_corner; 463 else 464 goto is_not_a_corner; 465 else 466 goto is_not_a_corner; 467 else 468 goto is_not_a_corner; 469 else 470 goto is_not_a_corner; 471 else if( p[pixel[8]] < c_b) 472 if( p[pixel[5]] < c_b) 473 if( p[pixel[6]] < c_b) 474 if( p[pixel[7]] < c_b) 475 if( p[pixel[9]] < c_b) 476 if( p[pixel[10]] < c_b) 477 if( p[pixel[11]] < c_b) 478 if( p[pixel[12]] < c_b) 479 if( p[pixel[13]] < c_b) 480 if( p[pixel[14]] < c_b) 481 if( p[pixel[4]] < c_b) 482 goto is_a_corner; 483 else 484 if( p[pixel[15]] < c_b) 485 goto is_a_corner; 486 else 487 goto is_not_a_corner; 488 else 489 goto is_not_a_corner; 490 else 491 goto is_not_a_corner; 492 else 493 goto is_not_a_corner; 494 else 495 goto is_not_a_corner; 496 else 497 goto is_not_a_corner; 498 else 499 goto is_not_a_corner; 500 else 501 goto is_not_a_corner; 502 else 503 goto is_not_a_corner; 504 else 505 goto is_not_a_corner; 506 else 507 goto is_not_a_corner; 508 else if( p[pixel[2]] < c_b) 509 if( p[pixel[7]] > cb) 510 if( p[pixel[8]] > cb) 511 if( p[pixel[9]] > cb) 512 if( p[pixel[10]] > cb) 513 if( p[pixel[11]] > cb) 514 if( p[pixel[12]] > cb) 515 if( p[pixel[13]] > cb) 516 if( p[pixel[14]] > cb) 517 if( p[pixel[15]] > cb) 518 goto is_a_corner; 519 else 520 if( p[pixel[4]] > cb) 521 if( p[pixel[5]] > cb) 522 if( p[pixel[6]] > cb) 523 goto is_a_corner; 524 else 525 goto is_not_a_corner; 526 else 527 goto is_not_a_corner; 528 else 529 goto is_not_a_corner; 530 else 531 if( p[pixel[3]] > cb) 532 if( p[pixel[4]] > cb) 533 if( p[pixel[5]] > cb) 534 if( p[pixel[6]] > cb) 535 goto is_a_corner; 536 else 537 goto is_not_a_corner; 538 else 539 goto is_not_a_corner; 540 else 541 goto is_not_a_corner; 542 else 543 goto is_not_a_corner; 544 else 545 goto is_not_a_corner; 546 else 547 goto is_not_a_corner; 548 else 549 goto is_not_a_corner; 550 else 551 goto is_not_a_corner; 552 else 553 goto is_not_a_corner; 554 else 555 goto is_not_a_corner; 556 else if( p[pixel[7]] < c_b) 557 if( p[pixel[5]] < c_b) 558 if( p[pixel[6]] < c_b) 559 if( p[pixel[8]] < c_b) 560 if( p[pixel[9]] < c_b) 561 if( p[pixel[10]] < c_b) 562 if( p[pixel[11]] < c_b) 563 if( p[pixel[12]] < c_b) 564 if( p[pixel[4]] < c_b) 565 if( p[pixel[3]] < c_b) 566 goto is_a_corner; 567 else 568 if( p[pixel[13]] < c_b) 569 if( p[pixel[14]] < c_b) 570 goto is_a_corner; 571 else 572 goto is_not_a_corner; 573 else 574 goto is_not_a_corner; 575 else 576 if( p[pixel[13]] < c_b) 577 if( p[pixel[14]] < c_b) 578 if( p[pixel[15]] < c_b) 579 goto is_a_corner; 580 else 581 goto is_not_a_corner; 582 else 583 goto is_not_a_corner; 584 else 585 goto is_not_a_corner; 586 else 587 goto is_not_a_corner; 588 else 589 goto is_not_a_corner; 590 else 591 goto is_not_a_corner; 592 else 593 goto is_not_a_corner; 594 else 595 goto is_not_a_corner; 596 else 597 goto is_not_a_corner; 598 else 599 goto is_not_a_corner; 600 else 601 goto is_not_a_corner; 602 else 603 if( p[pixel[7]] > cb) 604 if( p[pixel[8]] > cb) 605 if( p[pixel[9]] > cb) 606 if( p[pixel[10]] > cb) 607 if( p[pixel[11]] > cb) 608 if( p[pixel[12]] > cb) 609 if( p[pixel[13]] > cb) 610 if( p[pixel[14]] > cb) 611 if( p[pixel[15]] > cb) 612 goto is_a_corner; 613 else 614 if( p[pixel[4]] > cb) 615 if( p[pixel[5]] > cb) 616 if( p[pixel[6]] > cb) 617 goto is_a_corner; 618 else 619 goto is_not_a_corner; 620 else 621 goto is_not_a_corner; 622 else 623 goto is_not_a_corner; 624 else 625 if( p[pixel[3]] > cb) 626 if( p[pixel[4]] > cb) 627 if( p[pixel[5]] > cb) 628 if( p[pixel[6]] > cb) 629 goto is_a_corner; 630 else 631 goto is_not_a_corner; 632 else 633 goto is_not_a_corner; 634 else 635 goto is_not_a_corner; 636 else 637 goto is_not_a_corner; 638 else 639 goto is_not_a_corner; 640 else 641 goto is_not_a_corner; 642 else 643 goto is_not_a_corner; 644 else 645 goto is_not_a_corner; 646 else 647 goto is_not_a_corner; 648 else 649 goto is_not_a_corner; 650 else if( p[pixel[7]] < c_b) 651 if( p[pixel[5]] < c_b) 652 if( p[pixel[6]] < c_b) 653 if( p[pixel[8]] < c_b) 654 if( p[pixel[9]] < c_b) 655 if( p[pixel[10]] < c_b) 656 if( p[pixel[11]] < c_b) 657 if( p[pixel[12]] < c_b) 658 if( p[pixel[13]] < c_b) 659 if( p[pixel[4]] < c_b) 660 if( p[pixel[3]] < c_b) 661 goto is_a_corner; 662 else 663 if( p[pixel[14]] < c_b) 664 goto is_a_corner; 665 else 666 goto is_not_a_corner; 667 else 668 if( p[pixel[14]] < c_b) 669 if( p[pixel[15]] < c_b) 670 goto is_a_corner; 671 else 672 goto is_not_a_corner; 673 else 674 goto is_not_a_corner; 675 else 676 goto is_not_a_corner; 677 else 678 goto is_not_a_corner; 679 else 680 goto is_not_a_corner; 681 else 682 goto is_not_a_corner; 683 else 684 goto is_not_a_corner; 685 else 686 goto is_not_a_corner; 687 else 688 goto is_not_a_corner; 689 else 690 goto is_not_a_corner; 691 else 692 goto is_not_a_corner; 693 else if( p[pixel[1]] < c_b) 694 if( p[pixel[6]] > cb) 695 if( p[pixel[7]] > cb) 696 if( p[pixel[8]] > cb) 697 if( p[pixel[9]] > cb) 698 if( p[pixel[10]] > cb) 699 if( p[pixel[11]] > cb) 700 if( p[pixel[12]] > cb) 701 if( p[pixel[13]] > cb) 702 if( p[pixel[14]] > cb) 703 if( p[pixel[15]] > cb) 704 goto is_a_corner; 705 else 706 if( p[pixel[4]] > cb) 707 if( p[pixel[5]] > cb) 708 goto is_a_corner; 709 else 710 goto is_not_a_corner; 711 else 712 goto is_not_a_corner; 713 else 714 if( p[pixel[3]] > cb) 715 if( p[pixel[4]] > cb) 716 if( p[pixel[5]] > cb) 717 goto is_a_corner; 718 else 719 goto is_not_a_corner; 720 else 721 goto is_not_a_corner; 722 else 723 goto is_not_a_corner; 724 else 725 if( p[pixel[2]] > cb) 726 if( p[pixel[3]] > cb) 727 if( p[pixel[4]] > cb) 728 if( p[pixel[5]] > cb) 729 goto is_a_corner; 730 else 731 goto is_not_a_corner; 732 else 733 goto is_not_a_corner; 734 else 735 goto is_not_a_corner; 736 else 737 goto is_not_a_corner; 738 else 739 goto is_not_a_corner; 740 else 741 goto is_not_a_corner; 742 else 743 goto is_not_a_corner; 744 else 745 goto is_not_a_corner; 746 else 747 goto is_not_a_corner; 748 else 749 goto is_not_a_corner; 750 else if( p[pixel[6]] < c_b) 751 if( p[pixel[5]] < c_b) 752 if( p[pixel[7]] < c_b) 753 if( p[pixel[8]] < c_b) 754 if( p[pixel[9]] < c_b) 755 if( p[pixel[10]] < c_b) 756 if( p[pixel[11]] < c_b) 757 if( p[pixel[4]] < c_b) 758 if( p[pixel[3]] < c_b) 759 if( p[pixel[2]] < c_b) 760 goto is_a_corner; 761 else 762 if( p[pixel[12]] < c_b) 763 if( p[pixel[13]] < c_b) 764 goto is_a_corner; 765 else 766 goto is_not_a_corner; 767 else 768 goto is_not_a_corner; 769 else 770 if( p[pixel[12]] < c_b) 771 if( p[pixel[13]] < c_b) 772 if( p[pixel[14]] < c_b) 773 goto is_a_corner; 774 else 775 goto is_not_a_corner; 776 else 777 goto is_not_a_corner; 778 else 779 goto is_not_a_corner; 780 else 781 if( p[pixel[12]] < c_b) 782 if( p[pixel[13]] < c_b) 783 if( p[pixel[14]] < c_b) 784 if( p[pixel[15]] < c_b) 785 goto is_a_corner; 786 else 787 goto is_not_a_corner; 788 else 789 goto is_not_a_corner; 790 else 791 goto is_not_a_corner; 792 else 793 goto is_not_a_corner; 794 else 795 goto is_not_a_corner; 796 else 797 goto is_not_a_corner; 798 else 799 goto is_not_a_corner; 800 else 801 goto is_not_a_corner; 802 else 803 goto is_not_a_corner; 804 else 805 goto is_not_a_corner; 806 else 807 goto is_not_a_corner; 808 else 809 if( p[pixel[6]] > cb) 810 if( p[pixel[7]] > cb) 811 if( p[pixel[8]] > cb) 812 if( p[pixel[9]] > cb) 813 if( p[pixel[10]] > cb) 814 if( p[pixel[11]] > cb) 815 if( p[pixel[12]] > cb) 816 if( p[pixel[13]] > cb) 817 if( p[pixel[14]] > cb) 818 if( p[pixel[15]] > cb) 819 goto is_a_corner; 820 else 821 if( p[pixel[4]] > cb) 822 if( p[pixel[5]] > cb) 823 goto is_a_corner; 824 else 825 goto is_not_a_corner; 826 else 827 goto is_not_a_corner; 828 else 829 if( p[pixel[3]] > cb) 830 if( p[pixel[4]] > cb) 831 if( p[pixel[5]] > cb) 832 goto is_a_corner; 833 else 834 goto is_not_a_corner; 835 else 836 goto is_not_a_corner; 837 else 838 goto is_not_a_corner; 839 else 840 if( p[pixel[2]] > cb) 841 if( p[pixel[3]] > cb) 842 if( p[pixel[4]] > cb) 843 if( p[pixel[5]] > cb) 844 goto is_a_corner; 845 else 846 goto is_not_a_corner; 847 else 848 goto is_not_a_corner; 849 else 850 goto is_not_a_corner; 851 else 852 goto is_not_a_corner; 853 else 854 goto is_not_a_corner; 855 else 856 goto is_not_a_corner; 857 else 858 goto is_not_a_corner; 859 else 860 goto is_not_a_corner; 861 else 862 goto is_not_a_corner; 863 else 864 goto is_not_a_corner; 865 else if( p[pixel[6]] < c_b) 866 if( p[pixel[5]] < c_b) 867 if( p[pixel[7]] < c_b) 868 if( p[pixel[8]] < c_b) 869 if( p[pixel[9]] < c_b) 870 if( p[pixel[10]] < c_b) 871 if( p[pixel[11]] < c_b) 872 if( p[pixel[12]] < c_b) 873 if( p[pixel[4]] < c_b) 874 if( p[pixel[3]] < c_b) 875 if( p[pixel[2]] < c_b) 876 goto is_a_corner; 877 else 878 if( p[pixel[13]] < c_b) 879 goto is_a_corner; 880 else 881 goto is_not_a_corner; 882 else 883 if( p[pixel[13]] < c_b) 884 if( p[pixel[14]] < c_b) 885 goto is_a_corner; 886 else 887 goto is_not_a_corner; 888 else 889 goto is_not_a_corner; 890 else 891 if( p[pixel[13]] < c_b) 892 if( p[pixel[14]] < c_b) 893 if( p[pixel[15]] < c_b) 894 goto is_a_corner; 895 else 896 goto is_not_a_corner; 897 else 898 goto is_not_a_corner; 899 else 900 goto is_not_a_corner; 901 else 902 goto is_not_a_corner; 903 else 904 goto is_not_a_corner; 905 else 906 goto is_not_a_corner; 907 else 908 goto is_not_a_corner; 909 else 910 goto is_not_a_corner; 911 else 912 goto is_not_a_corner; 913 else 914 goto is_not_a_corner; 915 else 916 goto is_not_a_corner; 917 else if( p[pixel[0]] < c_b) 918 if( p[pixel[1]] > cb) 919 if( p[pixel[6]] > cb) 920 if( p[pixel[5]] > cb) 921 if( p[pixel[7]] > cb) 922 if( p[pixel[8]] > cb) 923 if( p[pixel[9]] > cb) 924 if( p[pixel[10]] > cb) 925 if( p[pixel[11]] > cb) 926 if( p[pixel[4]] > cb) 927 if( p[pixel[3]] > cb) 928 if( p[pixel[2]] > cb) 929 goto is_a_corner; 930 else 931 if( p[pixel[12]] > cb) 932 if( p[pixel[13]] > cb) 933 goto is_a_corner; 934 else 935 goto is_not_a_corner; 936 else 937 goto is_not_a_corner; 938 else 939 if( p[pixel[12]] > cb) 940 if( p[pixel[13]] > cb) 941 if( p[pixel[14]] > cb) 942 goto is_a_corner; 943 else 944 goto is_not_a_corner; 945 else 946 goto is_not_a_corner; 947 else 948 goto is_not_a_corner; 949 else 950 if( p[pixel[12]] > cb) 951 if( p[pixel[13]] > cb) 952 if( p[pixel[14]] > cb) 953 if( p[pixel[15]] > cb) 954 goto is_a_corner; 955 else 956 goto is_not_a_corner; 957 else 958 goto is_not_a_corner; 959 else 960 goto is_not_a_corner; 961 else 962 goto is_not_a_corner; 963 else 964 goto is_not_a_corner; 965 else 966 goto is_not_a_corner; 967 else 968 goto is_not_a_corner; 969 else 970 goto is_not_a_corner; 971 else 972 goto is_not_a_corner; 973 else 974 goto is_not_a_corner; 975 else if( p[pixel[6]] < c_b) 976 if( p[pixel[7]] < c_b) 977 if( p[pixel[8]] < c_b) 978 if( p[pixel[9]] < c_b) 979 if( p[pixel[10]] < c_b) 980 if( p[pixel[11]] < c_b) 981 if( p[pixel[12]] < c_b) 982 if( p[pixel[13]] < c_b) 983 if( p[pixel[14]] < c_b) 984 if( p[pixel[15]] < c_b) 985 goto is_a_corner; 986 else 987 if( p[pixel[4]] < c_b) 988 if( p[pixel[5]] < c_b) 989 goto is_a_corner; 990 else 991 goto is_not_a_corner; 992 else 993 goto is_not_a_corner; 994 else 995 if( p[pixel[3]] < c_b) 996 if( p[pixel[4]] < c_b) 997 if( p[pixel[5]] < c_b) 998 goto is_a_corner; 999 else 1000 goto is_not_a_corner; 1001 else 1002 goto is_not_a_corner; 1003 else 1004 goto is_not_a_corner; 1005 else 1006 if( p[pixel[2]] < c_b) 1007 if( p[pixel[3]] < c_b) 1008 if( p[pixel[4]] < c_b) 1009 if( p[pixel[5]] < c_b) 1010 goto is_a_corner; 1011 else 1012 goto is_not_a_corner; 1013 else 1014 goto is_not_a_corner; 1015 else 1016 goto is_not_a_corner; 1017 else 1018 goto is_not_a_corner; 1019 else 1020 goto is_not_a_corner; 1021 else 1022 goto is_not_a_corner; 1023 else 1024 goto is_not_a_corner; 1025 else 1026 goto is_not_a_corner; 1027 else 1028 goto is_not_a_corner; 1029 else 1030 goto is_not_a_corner; 1031 else 1032 goto is_not_a_corner; 1033 else if( p[pixel[1]] < c_b) 1034 if( p[pixel[2]] > cb) 1035 if( p[pixel[7]] > cb) 1036 if( p[pixel[5]] > cb) 1037 if( p[pixel[6]] > cb) 1038 if( p[pixel[8]] > cb) 1039 if( p[pixel[9]] > cb) 1040 if( p[pixel[10]] > cb) 1041 if( p[pixel[11]] > cb) 1042 if( p[pixel[12]] > cb) 1043 if( p[pixel[4]] > cb) 1044 if( p[pixel[3]] > cb) 1045 goto is_a_corner; 1046 else 1047 if( p[pixel[13]] > cb) 1048 if( p[pixel[14]] > cb) 1049 goto is_a_corner; 1050 else 1051 goto is_not_a_corner; 1052 else 1053 goto is_not_a_corner; 1054 else 1055 if( p[pixel[13]] > cb) 1056 if( p[pixel[14]] > cb) 1057 if( p[pixel[15]] > cb) 1058 goto is_a_corner; 1059 else 1060 goto is_not_a_corner; 1061 else 1062 goto is_not_a_corner; 1063 else 1064 goto is_not_a_corner; 1065 else 1066 goto is_not_a_corner; 1067 else 1068 goto is_not_a_corner; 1069 else 1070 goto is_not_a_corner; 1071 else 1072 goto is_not_a_corner; 1073 else 1074 goto is_not_a_corner; 1075 else 1076 goto is_not_a_corner; 1077 else 1078 goto is_not_a_corner; 1079 else if( p[pixel[7]] < c_b) 1080 if( p[pixel[8]] < c_b) 1081 if( p[pixel[9]] < c_b) 1082 if( p[pixel[10]] < c_b) 1083 if( p[pixel[11]] < c_b) 1084 if( p[pixel[12]] < c_b) 1085 if( p[pixel[13]] < c_b) 1086 if( p[pixel[14]] < c_b) 1087 if( p[pixel[15]] < c_b) 1088 goto is_a_corner; 1089 else 1090 if( p[pixel[4]] < c_b) 1091 if( p[pixel[5]] < c_b) 1092 if( p[pixel[6]] < c_b) 1093 goto is_a_corner; 1094 else 1095 goto is_not_a_corner; 1096 else 1097 goto is_not_a_corner; 1098 else 1099 goto is_not_a_corner; 1100 else 1101 if( p[pixel[3]] < c_b) 1102 if( p[pixel[4]] < c_b) 1103 if( p[pixel[5]] < c_b) 1104 if( p[pixel[6]] < c_b) 1105 goto is_a_corner; 1106 else 1107 goto is_not_a_corner; 1108 else 1109 goto is_not_a_corner; 1110 else 1111 goto is_not_a_corner; 1112 else 1113 goto is_not_a_corner; 1114 else 1115 goto is_not_a_corner; 1116 else 1117 goto is_not_a_corner; 1118 else 1119 goto is_not_a_corner; 1120 else 1121 goto is_not_a_corner; 1122 else 1123 goto is_not_a_corner; 1124 else 1125 goto is_not_a_corner; 1126 else 1127 goto is_not_a_corner; 1128 else if( p[pixel[2]] < c_b) 1129 if( p[pixel[3]] > cb) 1130 if( p[pixel[14]] > cb) 1131 if( p[pixel[5]] > cb) 1132 if( p[pixel[6]] > cb) 1133 if( p[pixel[7]] > cb) 1134 if( p[pixel[8]] > cb) 1135 if( p[pixel[9]] > cb) 1136 if( p[pixel[10]] > cb) 1137 if( p[pixel[11]] > cb) 1138 if( p[pixel[12]] > cb) 1139 if( p[pixel[13]] > cb) 1140 if( p[pixel[4]] > cb) 1141 goto is_a_corner; 1142 else 1143 if( p[pixel[15]] > cb) 1144 goto is_a_corner; 1145 else 1146 goto is_not_a_corner; 1147 else 1148 goto is_not_a_corner; 1149 else 1150 goto is_not_a_corner; 1151 else 1152 goto is_not_a_corner; 1153 else 1154 goto is_not_a_corner; 1155 else 1156 goto is_not_a_corner; 1157 else 1158 goto is_not_a_corner; 1159 else 1160 goto is_not_a_corner; 1161 else 1162 goto is_not_a_corner; 1163 else 1164 goto is_not_a_corner; 1165 else if( p[pixel[14]] < c_b) 1166 if( p[pixel[8]] > cb) 1167 if( p[pixel[4]] > cb) 1168 if( p[pixel[5]] > cb) 1169 if( p[pixel[6]] > cb) 1170 if( p[pixel[7]] > cb) 1171 if( p[pixel[9]] > cb) 1172 if( p[pixel[10]] > cb) 1173 if( p[pixel[11]] > cb) 1174 if( p[pixel[12]] > cb) 1175 if( p[pixel[13]] > cb) 1176 goto is_a_corner; 1177 else 1178 goto is_not_a_corner; 1179 else 1180 goto is_not_a_corner; 1181 else 1182 goto is_not_a_corner; 1183 else 1184 goto is_not_a_corner; 1185 else 1186 goto is_not_a_corner; 1187 else 1188 goto is_not_a_corner; 1189 else 1190 goto is_not_a_corner; 1191 else 1192 goto is_not_a_corner; 1193 else 1194 goto is_not_a_corner; 1195 else if( p[pixel[8]] < c_b) 1196 if( p[pixel[9]] < c_b) 1197 if( p[pixel[10]] < c_b) 1198 if( p[pixel[11]] < c_b) 1199 if( p[pixel[12]] < c_b) 1200 if( p[pixel[13]] < c_b) 1201 if( p[pixel[15]] < c_b) 1202 goto is_a_corner; 1203 else 1204 if( p[pixel[4]] < c_b) 1205 if( p[pixel[5]] < c_b) 1206 if( p[pixel[6]] < c_b) 1207 if( p[pixel[7]] < c_b) 1208 goto is_a_corner; 1209 else 1210 goto is_not_a_corner; 1211 else 1212 goto is_not_a_corner; 1213 else 1214 goto is_not_a_corner; 1215 else 1216 goto is_not_a_corner; 1217 else 1218 goto is_not_a_corner; 1219 else 1220 goto is_not_a_corner; 1221 else 1222 goto is_not_a_corner; 1223 else 1224 goto is_not_a_corner; 1225 else 1226 goto is_not_a_corner; 1227 else 1228 goto is_not_a_corner; 1229 else 1230 if( p[pixel[4]] > cb) 1231 if( p[pixel[5]] > cb) 1232 if( p[pixel[6]] > cb) 1233 if( p[pixel[7]] > cb) 1234 if( p[pixel[8]] > cb) 1235 if( p[pixel[9]] > cb) 1236 if( p[pixel[10]] > cb) 1237 if( p[pixel[11]] > cb) 1238 if( p[pixel[12]] > cb) 1239 if( p[pixel[13]] > cb) 1240 goto is_a_corner; 1241 else 1242 goto is_not_a_corner; 1243 else 1244 goto is_not_a_corner; 1245 else 1246 goto is_not_a_corner; 1247 else 1248 goto is_not_a_corner; 1249 else 1250 goto is_not_a_corner; 1251 else 1252 goto is_not_a_corner; 1253 else 1254 goto is_not_a_corner; 1255 else 1256 goto is_not_a_corner; 1257 else 1258 goto is_not_a_corner; 1259 else 1260 goto is_not_a_corner; 1261 else if( p[pixel[3]] < c_b) 1262 if( p[pixel[4]] > cb) 1263 if( p[pixel[15]] < c_b) 1264 if( p[pixel[9]] > cb) 1265 if( p[pixel[5]] > cb) 1266 if( p[pixel[6]] > cb) 1267 if( p[pixel[7]] > cb) 1268 if( p[pixel[8]] > cb) 1269 if( p[pixel[10]] > cb) 1270 if( p[pixel[11]] > cb) 1271 if( p[pixel[12]] > cb) 1272 if( p[pixel[13]] > cb) 1273 if( p[pixel[14]] > cb) 1274 goto is_a_corner; 1275 else 1276 goto is_not_a_corner; 1277 else 1278 goto is_not_a_corner; 1279 else 1280 goto is_not_a_corner; 1281 else 1282 goto is_not_a_corner; 1283 else 1284 goto is_not_a_corner; 1285 else 1286 goto is_not_a_corner; 1287 else 1288 goto is_not_a_corner; 1289 else 1290 goto is_not_a_corner; 1291 else 1292 goto is_not_a_corner; 1293 else if( p[pixel[9]] < c_b) 1294 if( p[pixel[10]] < c_b) 1295 if( p[pixel[11]] < c_b) 1296 if( p[pixel[12]] < c_b) 1297 if( p[pixel[13]] < c_b) 1298 if( p[pixel[14]] < c_b) 1299 goto is_a_corner; 1300 else 1301 goto is_not_a_corner; 1302 else 1303 goto is_not_a_corner; 1304 else 1305 goto is_not_a_corner; 1306 else 1307 goto is_not_a_corner; 1308 else 1309 goto is_not_a_corner; 1310 else 1311 goto is_not_a_corner; 1312 else 1313 if( p[pixel[5]] > cb) 1314 if( p[pixel[6]] > cb) 1315 if( p[pixel[7]] > cb) 1316 if( p[pixel[8]] > cb) 1317 if( p[pixel[9]] > cb) 1318 if( p[pixel[10]] > cb) 1319 if( p[pixel[11]] > cb) 1320 if( p[pixel[12]] > cb) 1321 if( p[pixel[13]] > cb) 1322 if( p[pixel[14]] > cb) 1323 goto is_a_corner; 1324 else 1325 goto is_not_a_corner; 1326 else 1327 goto is_not_a_corner; 1328 else 1329 goto is_not_a_corner; 1330 else 1331 goto is_not_a_corner; 1332 else 1333 goto is_not_a_corner; 1334 else 1335 goto is_not_a_corner; 1336 else 1337 goto is_not_a_corner; 1338 else 1339 goto is_not_a_corner; 1340 else 1341 goto is_not_a_corner; 1342 else 1343 goto is_not_a_corner; 1344 else if( p[pixel[4]] < c_b) 1345 if( p[pixel[5]] > cb) 1346 if( p[pixel[10]] > cb) 1347 if( p[pixel[6]] > cb) 1348 if( p[pixel[7]] > cb) 1349 if( p[pixel[8]] > cb) 1350 if( p[pixel[9]] > cb) 1351 if( p[pixel[11]] > cb) 1352 if( p[pixel[12]] > cb) 1353 if( p[pixel[13]] > cb) 1354 if( p[pixel[14]] > cb) 1355 if( p[pixel[15]] > cb) 1356 goto is_a_corner; 1357 else 1358 goto is_not_a_corner; 1359 else 1360 goto is_not_a_corner; 1361 else 1362 goto is_not_a_corner; 1363 else 1364 goto is_not_a_corner; 1365 else 1366 goto is_not_a_corner; 1367 else 1368 goto is_not_a_corner; 1369 else 1370 goto is_not_a_corner; 1371 else 1372 goto is_not_a_corner; 1373 else 1374 goto is_not_a_corner; 1375 else if( p[pixel[10]] < c_b) 1376 if( p[pixel[11]] < c_b) 1377 if( p[pixel[12]] < c_b) 1378 if( p[pixel[13]] < c_b) 1379 if( p[pixel[14]] < c_b) 1380 if( p[pixel[15]] < c_b) 1381 goto is_a_corner; 1382 else 1383 goto is_not_a_corner; 1384 else 1385 goto is_not_a_corner; 1386 else 1387 goto is_not_a_corner; 1388 else 1389 goto is_not_a_corner; 1390 else 1391 goto is_not_a_corner; 1392 else 1393 goto is_not_a_corner; 1394 else if( p[pixel[5]] < c_b) 1395 if( p[pixel[6]] < c_b) 1396 if( p[pixel[7]] < c_b) 1397 if( p[pixel[8]] < c_b) 1398 if( p[pixel[9]] < c_b) 1399 if( p[pixel[10]] < c_b) 1400 goto is_a_corner; 1401 else 1402 if( p[pixel[15]] < c_b) 1403 goto is_a_corner; 1404 else 1405 goto is_not_a_corner; 1406 else 1407 if( p[pixel[14]] < c_b) 1408 if( p[pixel[15]] < c_b) 1409 goto is_a_corner; 1410 else 1411 goto is_not_a_corner; 1412 else 1413 goto is_not_a_corner; 1414 else 1415 if( p[pixel[13]] < c_b) 1416 if( p[pixel[14]] < c_b) 1417 if( p[pixel[15]] < c_b) 1418 goto is_a_corner; 1419 else 1420 goto is_not_a_corner; 1421 else 1422 goto is_not_a_corner; 1423 else 1424 goto is_not_a_corner; 1425 else 1426 if( p[pixel[12]] < c_b) 1427 if( p[pixel[13]] < c_b) 1428 if( p[pixel[14]] < c_b) 1429 if( p[pixel[15]] < c_b) 1430 goto is_a_corner; 1431 else 1432 goto is_not_a_corner; 1433 else 1434 goto is_not_a_corner; 1435 else 1436 goto is_not_a_corner; 1437 else 1438 goto is_not_a_corner; 1439 else 1440 if( p[pixel[11]] < c_b) 1441 if( p[pixel[12]] < c_b) 1442 if( p[pixel[13]] < c_b) 1443 if( p[pixel[14]] < c_b) 1444 if( p[pixel[15]] < c_b) 1445 goto is_a_corner; 1446 else 1447 goto is_not_a_corner; 1448 else 1449 goto is_not_a_corner; 1450 else 1451 goto is_not_a_corner; 1452 else 1453 goto is_not_a_corner; 1454 else 1455 goto is_not_a_corner; 1456 else 1457 if( p[pixel[10]] < c_b) 1458 if( p[pixel[11]] < c_b) 1459 if( p[pixel[12]] < c_b) 1460 if( p[pixel[13]] < c_b) 1461 if( p[pixel[14]] < c_b) 1462 if( p[pixel[15]] < c_b) 1463 goto is_a_corner; 1464 else 1465 goto is_not_a_corner; 1466 else 1467 goto is_not_a_corner; 1468 else 1469 goto is_not_a_corner; 1470 else 1471 goto is_not_a_corner; 1472 else 1473 goto is_not_a_corner; 1474 else 1475 goto is_not_a_corner; 1476 else 1477 if( p[pixel[9]] > cb) 1478 if( p[pixel[5]] > cb) 1479 if( p[pixel[6]] > cb) 1480 if( p[pixel[7]] > cb) 1481 if( p[pixel[8]] > cb) 1482 if( p[pixel[10]] > cb) 1483 if( p[pixel[11]] > cb) 1484 if( p[pixel[12]] > cb) 1485 if( p[pixel[13]] > cb) 1486 if( p[pixel[14]] > cb) 1487 if( p[pixel[15]] > cb) 1488 goto is_a_corner; 1489 else 1490 goto is_not_a_corner; 1491 else 1492 goto is_not_a_corner; 1493 else 1494 goto is_not_a_corner; 1495 else 1496 goto is_not_a_corner; 1497 else 1498 goto is_not_a_corner; 1499 else 1500 goto is_not_a_corner; 1501 else 1502 goto is_not_a_corner; 1503 else 1504 goto is_not_a_corner; 1505 else 1506 goto is_not_a_corner; 1507 else 1508 goto is_not_a_corner; 1509 else if( p[pixel[9]] < c_b) 1510 if( p[pixel[10]] < c_b) 1511 if( p[pixel[11]] < c_b) 1512 if( p[pixel[12]] < c_b) 1513 if( p[pixel[13]] < c_b) 1514 if( p[pixel[14]] < c_b) 1515 if( p[pixel[15]] < c_b) 1516 goto is_a_corner; 1517 else 1518 goto is_not_a_corner; 1519 else 1520 goto is_not_a_corner; 1521 else 1522 goto is_not_a_corner; 1523 else 1524 goto is_not_a_corner; 1525 else 1526 goto is_not_a_corner; 1527 else 1528 goto is_not_a_corner; 1529 else 1530 goto is_not_a_corner; 1531 else 1532 if( p[pixel[8]] > cb) 1533 if( p[pixel[5]] > cb) 1534 if( p[pixel[6]] > cb) 1535 if( p[pixel[7]] > cb) 1536 if( p[pixel[9]] > cb) 1537 if( p[pixel[10]] > cb) 1538 if( p[pixel[11]] > cb) 1539 if( p[pixel[12]] > cb) 1540 if( p[pixel[13]] > cb) 1541 if( p[pixel[14]] > cb) 1542 if( p[pixel[4]] > cb) 1543 goto is_a_corner; 1544 else 1545 if( p[pixel[15]] > cb) 1546 goto is_a_corner; 1547 else 1548 goto is_not_a_corner; 1549 else 1550 goto is_not_a_corner; 1551 else 1552 goto is_not_a_corner; 1553 else 1554 goto is_not_a_corner; 1555 else 1556 goto is_not_a_corner; 1557 else 1558 goto is_not_a_corner; 1559 else 1560 goto is_not_a_corner; 1561 else 1562 goto is_not_a_corner; 1563 else 1564 goto is_not_a_corner; 1565 else 1566 goto is_not_a_corner; 1567 else if( p[pixel[8]] < c_b) 1568 if( p[pixel[9]] < c_b) 1569 if( p[pixel[10]] < c_b) 1570 if( p[pixel[11]] < c_b) 1571 if( p[pixel[12]] < c_b) 1572 if( p[pixel[13]] < c_b) 1573 if( p[pixel[14]] < c_b) 1574 if( p[pixel[15]] < c_b) 1575 goto is_a_corner; 1576 else 1577 if( p[pixel[4]] < c_b) 1578 if( p[pixel[5]] < c_b) 1579 if( p[pixel[6]] < c_b) 1580 if( p[pixel[7]] < c_b) 1581 goto is_a_corner; 1582 else 1583 goto is_not_a_corner; 1584 else 1585 goto is_not_a_corner; 1586 else 1587 goto is_not_a_corner; 1588 else 1589 goto is_not_a_corner; 1590 else 1591 goto is_not_a_corner; 1592 else 1593 goto is_not_a_corner; 1594 else 1595 goto is_not_a_corner; 1596 else 1597 goto is_not_a_corner; 1598 else 1599 goto is_not_a_corner; 1600 else 1601 goto is_not_a_corner; 1602 else 1603 goto is_not_a_corner; 1604 else 1605 if( p[pixel[7]] > cb) 1606 if( p[pixel[5]] > cb) 1607 if( p[pixel[6]] > cb) 1608 if( p[pixel[8]] > cb) 1609 if( p[pixel[9]] > cb) 1610 if( p[pixel[10]] > cb) 1611 if( p[pixel[11]] > cb) 1612 if( p[pixel[12]] > cb) 1613 if( p[pixel[13]] > cb) 1614 if( p[pixel[4]] > cb) 1615 if( p[pixel[3]] > cb) 1616 goto is_a_corner; 1617 else 1618 if( p[pixel[14]] > cb) 1619 goto is_a_corner; 1620 else 1621 goto is_not_a_corner; 1622 else 1623 if( p[pixel[14]] > cb) 1624 if( p[pixel[15]] > cb) 1625 goto is_a_corner; 1626 else 1627 goto is_not_a_corner; 1628 else 1629 goto is_not_a_corner; 1630 else 1631 goto is_not_a_corner; 1632 else 1633 goto is_not_a_corner; 1634 else 1635 goto is_not_a_corner; 1636 else 1637 goto is_not_a_corner; 1638 else 1639 goto is_not_a_corner; 1640 else 1641 goto is_not_a_corner; 1642 else 1643 goto is_not_a_corner; 1644 else 1645 goto is_not_a_corner; 1646 else if( p[pixel[7]] < c_b) 1647 if( p[pixel[8]] < c_b) 1648 if( p[pixel[9]] < c_b) 1649 if( p[pixel[10]] < c_b) 1650 if( p[pixel[11]] < c_b) 1651 if( p[pixel[12]] < c_b) 1652 if( p[pixel[13]] < c_b) 1653 if( p[pixel[14]] < c_b) 1654 if( p[pixel[15]] < c_b) 1655 goto is_a_corner; 1656 else 1657 if( p[pixel[4]] < c_b) 1658 if( p[pixel[5]] < c_b) 1659 if( p[pixel[6]] < c_b) 1660 goto is_a_corner; 1661 else 1662 goto is_not_a_corner; 1663 else 1664 goto is_not_a_corner; 1665 else 1666 goto is_not_a_corner; 1667 else 1668 if( p[pixel[3]] < c_b) 1669 if( p[pixel[4]] < c_b) 1670 if( p[pixel[5]] < c_b) 1671 if( p[pixel[6]] < c_b) 1672 goto is_a_corner; 1673 else 1674 goto is_not_a_corner; 1675 else 1676 goto is_not_a_corner; 1677 else 1678 goto is_not_a_corner; 1679 else 1680 goto is_not_a_corner; 1681 else 1682 goto is_not_a_corner; 1683 else 1684 goto is_not_a_corner; 1685 else 1686 goto is_not_a_corner; 1687 else 1688 goto is_not_a_corner; 1689 else 1690 goto is_not_a_corner; 1691 else 1692 goto is_not_a_corner; 1693 else 1694 goto is_not_a_corner; 1695 else 1696 if( p[pixel[6]] > cb) 1697 if( p[pixel[5]] > cb) 1698 if( p[pixel[7]] > cb) 1699 if( p[pixel[8]] > cb) 1700 if( p[pixel[9]] > cb) 1701 if( p[pixel[10]] > cb) 1702 if( p[pixel[11]] > cb) 1703 if( p[pixel[12]] > cb) 1704 if( p[pixel[4]] > cb) 1705 if( p[pixel[3]] > cb) 1706 if( p[pixel[2]] > cb) 1707 goto is_a_corner; 1708 else 1709 if( p[pixel[13]] > cb) 1710 goto is_a_corner; 1711 else 1712 goto is_not_a_corner; 1713 else 1714 if( p[pixel[13]] > cb) 1715 if( p[pixel[14]] > cb) 1716 goto is_a_corner; 1717 else 1718 goto is_not_a_corner; 1719 else 1720 goto is_not_a_corner; 1721 else 1722 if( p[pixel[13]] > cb) 1723 if( p[pixel[14]] > cb) 1724 if( p[pixel[15]] > cb) 1725 goto is_a_corner; 1726 else 1727 goto is_not_a_corner; 1728 else 1729 goto is_not_a_corner; 1730 else 1731 goto is_not_a_corner; 1732 else 1733 goto is_not_a_corner; 1734 else 1735 goto is_not_a_corner; 1736 else 1737 goto is_not_a_corner; 1738 else 1739 goto is_not_a_corner; 1740 else 1741 goto is_not_a_corner; 1742 else 1743 goto is_not_a_corner; 1744 else 1745 goto is_not_a_corner; 1746 else if( p[pixel[6]] < c_b) 1747 if( p[pixel[7]] < c_b) 1748 if( p[pixel[8]] < c_b) 1749 if( p[pixel[9]] < c_b) 1750 if( p[pixel[10]] < c_b) 1751 if( p[pixel[11]] < c_b) 1752 if( p[pixel[12]] < c_b) 1753 if( p[pixel[13]] < c_b) 1754 if( p[pixel[14]] < c_b) 1755 if( p[pixel[15]] < c_b) 1756 goto is_a_corner; 1757 else 1758 if( p[pixel[4]] < c_b) 1759 if( p[pixel[5]] < c_b) 1760 goto is_a_corner; 1761 else 1762 goto is_not_a_corner; 1763 else 1764 goto is_not_a_corner; 1765 else 1766 if( p[pixel[3]] < c_b) 1767 if( p[pixel[4]] < c_b) 1768 if( p[pixel[5]] < c_b) 1769 goto is_a_corner; 1770 else 1771 goto is_not_a_corner; 1772 else 1773 goto is_not_a_corner; 1774 else 1775 goto is_not_a_corner; 1776 else 1777 if( p[pixel[2]] < c_b) 1778 if( p[pixel[3]] < c_b) 1779 if( p[pixel[4]] < c_b) 1780 if( p[pixel[5]] < c_b) 1781 goto is_a_corner; 1782 else 1783 goto is_not_a_corner; 1784 else 1785 goto is_not_a_corner; 1786 else 1787 goto is_not_a_corner; 1788 else 1789 goto is_not_a_corner; 1790 else 1791 goto is_not_a_corner; 1792 else 1793 goto is_not_a_corner; 1794 else 1795 goto is_not_a_corner; 1796 else 1797 goto is_not_a_corner; 1798 else 1799 goto is_not_a_corner; 1800 else 1801 goto is_not_a_corner; 1802 else 1803 goto is_not_a_corner; 1804 else 1805 if( p[pixel[5]] > cb) 1806 if( p[pixel[6]] > cb) 1807 if( p[pixel[7]] > cb) 1808 if( p[pixel[8]] > cb) 1809 if( p[pixel[9]] > cb) 1810 if( p[pixel[10]] > cb) 1811 if( p[pixel[11]] > cb) 1812 if( p[pixel[4]] > cb) 1813 if( p[pixel[3]] > cb) 1814 if( p[pixel[2]] > cb) 1815 if( p[pixel[1]] > cb) 1816 goto is_a_corner; 1817 else 1818 if( p[pixel[12]] > cb) 1819 goto is_a_corner; 1820 else 1821 goto is_not_a_corner; 1822 else 1823 if( p[pixel[12]] > cb) 1824 if( p[pixel[13]] > cb) 1825 goto is_a_corner; 1826 else 1827 goto is_not_a_corner; 1828 else 1829 goto is_not_a_corner; 1830 else 1831 if( p[pixel[12]] > cb) 1832 if( p[pixel[13]] > cb) 1833 if( p[pixel[14]] > cb) 1834 goto is_a_corner; 1835 else 1836 goto is_not_a_corner; 1837 else 1838 goto is_not_a_corner; 1839 else 1840 goto is_not_a_corner; 1841 else 1842 if( p[pixel[12]] > cb) 1843 if( p[pixel[13]] > cb) 1844 if( p[pixel[14]] > cb) 1845 if( p[pixel[15]] > cb) 1846 goto is_a_corner; 1847 else 1848 goto is_not_a_corner; 1849 else 1850 goto is_not_a_corner; 1851 else 1852 goto is_not_a_corner; 1853 else 1854 goto is_not_a_corner; 1855 else 1856 goto is_not_a_corner; 1857 else 1858 goto is_not_a_corner; 1859 else 1860 goto is_not_a_corner; 1861 else 1862 goto is_not_a_corner; 1863 else 1864 goto is_not_a_corner; 1865 else 1866 goto is_not_a_corner; 1867 else if( p[pixel[5]] < c_b) 1868 if( p[pixel[6]] < c_b) 1869 if( p[pixel[7]] < c_b) 1870 if( p[pixel[8]] < c_b) 1871 if( p[pixel[9]] < c_b) 1872 if( p[pixel[10]] < c_b) 1873 if( p[pixel[11]] < c_b) 1874 if( p[pixel[4]] < c_b) 1875 if( p[pixel[3]] < c_b) 1876 if( p[pixel[2]] < c_b) 1877 if( p[pixel[1]] < c_b) 1878 goto is_a_corner; 1879 else 1880 if( p[pixel[12]] < c_b) 1881 goto is_a_corner; 1882 else 1883 goto is_not_a_corner; 1884 else 1885 if( p[pixel[12]] < c_b) 1886 if( p[pixel[13]] < c_b) 1887 goto is_a_corner; 1888 else 1889 goto is_not_a_corner; 1890 else 1891 goto is_not_a_corner; 1892 else 1893 if( p[pixel[12]] < c_b) 1894 if( p[pixel[13]] < c_b) 1895 if( p[pixel[14]] < c_b) 1896 goto is_a_corner; 1897 else 1898 goto is_not_a_corner; 1899 else 1900 goto is_not_a_corner; 1901 else 1902 goto is_not_a_corner; 1903 else 1904 if( p[pixel[12]] < c_b) 1905 if( p[pixel[13]] < c_b) 1906 if( p[pixel[14]] < c_b) 1907 if( p[pixel[15]] < c_b) 1908 goto is_a_corner; 1909 else 1910 goto is_not_a_corner; 1911 else 1912 goto is_not_a_corner; 1913 else 1914 goto is_not_a_corner; 1915 else 1916 goto is_not_a_corner; 1917 else 1918 goto is_not_a_corner; 1919 else 1920 goto is_not_a_corner; 1921 else 1922 goto is_not_a_corner; 1923 else 1924 goto is_not_a_corner; 1925 else 1926 goto is_not_a_corner; 1927 else 1928 goto is_not_a_corner; 1929 else 1930 goto is_not_a_corner; 1931 1932 is_a_corner: 1933 bmin=b; 1934 goto end_if; 1935 1936 is_not_a_corner: 1937 bmax=b; 1938 goto end_if; 1939 1940 end_if: 1941 1942 if(bmin == bmax - 1 || bmin == bmax) 1943 return bmin; 1944 b = (bmin + bmax) / 2; 1945 } 1946 return 0; 1947 } 1948 1949 static void make_offsets(int *pixel, int row_stride) 1950 { 1951 pixel[0] = 0 + row_stride * 3; 1952 pixel[1] = 1 + row_stride * 3; 1953 pixel[2] = 2 + row_stride * 2; 1954 pixel[3] = 3 + row_stride * 1; 1955 pixel[4] = 3 + row_stride * 0; 1956 pixel[5] = 3 + row_stride * -1; 1957 pixel[6] = 2 + row_stride * -2; 1958 pixel[7] = 1 + row_stride * -3; 1959 pixel[8] = 0 + row_stride * -3; 1960 pixel[9] = -1 + row_stride * -3; 1961 pixel[10] = -2 + row_stride * -2; 1962 pixel[11] = -3 + row_stride * -1; 1963 pixel[12] = -3 + row_stride * 0; 1964 pixel[13] = -3 + row_stride * 1; 1965 pixel[14] = -2 + row_stride * 2; 1966 pixel[15] = -1 + row_stride * 3; 1967 } 1968 1969 1970 1971 int* fast11_score(const ubyte* i, int stride, xy* corners, int num_corners, int b) 1972 { 1973 int* scores = cast(int*)malloc(int.sizeof* num_corners); 1974 int n; 1975 1976 int [16]pixel; 1977 make_offsets(pixel.ptr, stride); 1978 1979 for(n=0; n < num_corners; n++) 1980 scores[n] = fast11_corner_score(i + corners[n].y*stride + corners[n].x, pixel.ptr, b); 1981 1982 return scores; 1983 } 1984 1985 1986 xy* fast11_detect(const ubyte* im, int xsize, int ysize, int stride, int b, int* ret_num_corners) 1987 { 1988 int num_corners=0; 1989 xy* ret_corners; 1990 int rsize=512; 1991 int [16]pixel; 1992 int x, y; 1993 1994 ret_corners = cast(xy*)malloc(xy.sizeof*rsize); 1995 make_offsets(pixel.ptr, stride); 1996 1997 for(y=3; y < ysize - 3; y++) 1998 for(x=3; x < xsize - 3; x++) 1999 { 2000 const ubyte* p = im + y*stride + x; 2001 2002 int cb = *p + b; 2003 int c_b= *p - b; 2004 if(p[pixel[0]] > cb) 2005 if(p[pixel[1]] > cb) 2006 if(p[pixel[2]] > cb) 2007 if(p[pixel[3]] > cb) 2008 if(p[pixel[4]] > cb) 2009 if(p[pixel[5]] > cb) 2010 if(p[pixel[6]] > cb) 2011 if(p[pixel[7]] > cb) 2012 if(p[pixel[8]] > cb) 2013 if(p[pixel[9]] > cb) 2014 if(p[pixel[10]] > cb) 2015 {} 2016 else 2017 if(p[pixel[15]] > cb) 2018 {} 2019 else 2020 continue; 2021 else 2022 if(p[pixel[14]] > cb) 2023 if(p[pixel[15]] > cb) 2024 {} 2025 else 2026 continue; 2027 else 2028 continue; 2029 else 2030 if(p[pixel[13]] > cb) 2031 if(p[pixel[14]] > cb) 2032 if(p[pixel[15]] > cb) 2033 {} 2034 else 2035 continue; 2036 else 2037 continue; 2038 else 2039 continue; 2040 else 2041 if(p[pixel[12]] > cb) 2042 if(p[pixel[13]] > cb) 2043 if(p[pixel[14]] > cb) 2044 if(p[pixel[15]] > cb) 2045 {} 2046 else 2047 continue; 2048 else 2049 continue; 2050 else 2051 continue; 2052 else 2053 continue; 2054 else 2055 if(p[pixel[11]] > cb) 2056 if(p[pixel[12]] > cb) 2057 if(p[pixel[13]] > cb) 2058 if(p[pixel[14]] > cb) 2059 if(p[pixel[15]] > cb) 2060 {} 2061 else 2062 continue; 2063 else 2064 continue; 2065 else 2066 continue; 2067 else 2068 continue; 2069 else 2070 continue; 2071 else if(p[pixel[5]] < c_b) 2072 if(p[pixel[10]] > cb) 2073 if(p[pixel[11]] > cb) 2074 if(p[pixel[12]] > cb) 2075 if(p[pixel[13]] > cb) 2076 if(p[pixel[14]] > cb) 2077 if(p[pixel[15]] > cb) 2078 {} 2079 else 2080 continue; 2081 else 2082 continue; 2083 else 2084 continue; 2085 else 2086 continue; 2087 else 2088 continue; 2089 else if(p[pixel[10]] < c_b) 2090 if(p[pixel[6]] < c_b) 2091 if(p[pixel[7]] < c_b) 2092 if(p[pixel[8]] < c_b) 2093 if(p[pixel[9]] < c_b) 2094 if(p[pixel[11]] < c_b) 2095 if(p[pixel[12]] < c_b) 2096 if(p[pixel[13]] < c_b) 2097 if(p[pixel[14]] < c_b) 2098 if(p[pixel[15]] < c_b) 2099 {} 2100 else 2101 continue; 2102 else 2103 continue; 2104 else 2105 continue; 2106 else 2107 continue; 2108 else 2109 continue; 2110 else 2111 continue; 2112 else 2113 continue; 2114 else 2115 continue; 2116 else 2117 continue; 2118 else 2119 continue; 2120 else 2121 if(p[pixel[10]] > cb) 2122 if(p[pixel[11]] > cb) 2123 if(p[pixel[12]] > cb) 2124 if(p[pixel[13]] > cb) 2125 if(p[pixel[14]] > cb) 2126 if(p[pixel[15]] > cb) 2127 {} 2128 else 2129 continue; 2130 else 2131 continue; 2132 else 2133 continue; 2134 else 2135 continue; 2136 else 2137 continue; 2138 else 2139 continue; 2140 else if(p[pixel[4]] < c_b) 2141 if(p[pixel[15]] > cb) 2142 if(p[pixel[9]] > cb) 2143 if(p[pixel[10]] > cb) 2144 if(p[pixel[11]] > cb) 2145 if(p[pixel[12]] > cb) 2146 if(p[pixel[13]] > cb) 2147 if(p[pixel[14]] > cb) 2148 {} 2149 else 2150 continue; 2151 else 2152 continue; 2153 else 2154 continue; 2155 else 2156 continue; 2157 else 2158 continue; 2159 else if(p[pixel[9]] < c_b) 2160 if(p[pixel[5]] < c_b) 2161 if(p[pixel[6]] < c_b) 2162 if(p[pixel[7]] < c_b) 2163 if(p[pixel[8]] < c_b) 2164 if(p[pixel[10]] < c_b) 2165 if(p[pixel[11]] < c_b) 2166 if(p[pixel[12]] < c_b) 2167 if(p[pixel[13]] < c_b) 2168 if(p[pixel[14]] < c_b) 2169 {} 2170 else 2171 continue; 2172 else 2173 continue; 2174 else 2175 continue; 2176 else 2177 continue; 2178 else 2179 continue; 2180 else 2181 continue; 2182 else 2183 continue; 2184 else 2185 continue; 2186 else 2187 continue; 2188 else 2189 continue; 2190 else 2191 if(p[pixel[5]] < c_b) 2192 if(p[pixel[6]] < c_b) 2193 if(p[pixel[7]] < c_b) 2194 if(p[pixel[8]] < c_b) 2195 if(p[pixel[9]] < c_b) 2196 if(p[pixel[10]] < c_b) 2197 if(p[pixel[11]] < c_b) 2198 if(p[pixel[12]] < c_b) 2199 if(p[pixel[13]] < c_b) 2200 if(p[pixel[14]] < c_b) 2201 {} 2202 else 2203 continue; 2204 else 2205 continue; 2206 else 2207 continue; 2208 else 2209 continue; 2210 else 2211 continue; 2212 else 2213 continue; 2214 else 2215 continue; 2216 else 2217 continue; 2218 else 2219 continue; 2220 else 2221 continue; 2222 else 2223 if(p[pixel[9]] > cb) 2224 if(p[pixel[10]] > cb) 2225 if(p[pixel[11]] > cb) 2226 if(p[pixel[12]] > cb) 2227 if(p[pixel[13]] > cb) 2228 if(p[pixel[14]] > cb) 2229 if(p[pixel[15]] > cb) 2230 {} 2231 else 2232 continue; 2233 else 2234 continue; 2235 else 2236 continue; 2237 else 2238 continue; 2239 else 2240 continue; 2241 else 2242 continue; 2243 else if(p[pixel[9]] < c_b) 2244 if(p[pixel[5]] < c_b) 2245 if(p[pixel[6]] < c_b) 2246 if(p[pixel[7]] < c_b) 2247 if(p[pixel[8]] < c_b) 2248 if(p[pixel[10]] < c_b) 2249 if(p[pixel[11]] < c_b) 2250 if(p[pixel[12]] < c_b) 2251 if(p[pixel[13]] < c_b) 2252 if(p[pixel[14]] < c_b) 2253 if(p[pixel[15]] < c_b) 2254 {} 2255 else 2256 continue; 2257 else 2258 continue; 2259 else 2260 continue; 2261 else 2262 continue; 2263 else 2264 continue; 2265 else 2266 continue; 2267 else 2268 continue; 2269 else 2270 continue; 2271 else 2272 continue; 2273 else 2274 continue; 2275 else 2276 continue; 2277 else if(p[pixel[3]] < c_b) 2278 if(p[pixel[14]] > cb) 2279 if(p[pixel[8]] > cb) 2280 if(p[pixel[9]] > cb) 2281 if(p[pixel[10]] > cb) 2282 if(p[pixel[11]] > cb) 2283 if(p[pixel[12]] > cb) 2284 if(p[pixel[13]] > cb) 2285 if(p[pixel[15]] > cb) 2286 {} 2287 else 2288 if(p[pixel[4]] > cb) 2289 if(p[pixel[5]] > cb) 2290 if(p[pixel[6]] > cb) 2291 if(p[pixel[7]] > cb) 2292 {} 2293 else 2294 continue; 2295 else 2296 continue; 2297 else 2298 continue; 2299 else 2300 continue; 2301 else 2302 continue; 2303 else 2304 continue; 2305 else 2306 continue; 2307 else 2308 continue; 2309 else 2310 continue; 2311 else if(p[pixel[8]] < c_b) 2312 if(p[pixel[4]] < c_b) 2313 if(p[pixel[5]] < c_b) 2314 if(p[pixel[6]] < c_b) 2315 if(p[pixel[7]] < c_b) 2316 if(p[pixel[9]] < c_b) 2317 if(p[pixel[10]] < c_b) 2318 if(p[pixel[11]] < c_b) 2319 if(p[pixel[12]] < c_b) 2320 if(p[pixel[13]] < c_b) 2321 {} 2322 else 2323 continue; 2324 else 2325 continue; 2326 else 2327 continue; 2328 else 2329 continue; 2330 else 2331 continue; 2332 else 2333 continue; 2334 else 2335 continue; 2336 else 2337 continue; 2338 else 2339 continue; 2340 else 2341 continue; 2342 else if(p[pixel[14]] < c_b) 2343 if(p[pixel[5]] < c_b) 2344 if(p[pixel[6]] < c_b) 2345 if(p[pixel[7]] < c_b) 2346 if(p[pixel[8]] < c_b) 2347 if(p[pixel[9]] < c_b) 2348 if(p[pixel[10]] < c_b) 2349 if(p[pixel[11]] < c_b) 2350 if(p[pixel[12]] < c_b) 2351 if(p[pixel[13]] < c_b) 2352 if(p[pixel[4]] < c_b) 2353 {} 2354 else 2355 if(p[pixel[15]] < c_b) 2356 {} 2357 else 2358 continue; 2359 else 2360 continue; 2361 else 2362 continue; 2363 else 2364 continue; 2365 else 2366 continue; 2367 else 2368 continue; 2369 else 2370 continue; 2371 else 2372 continue; 2373 else 2374 continue; 2375 else 2376 continue; 2377 else 2378 if(p[pixel[4]] < c_b) 2379 if(p[pixel[5]] < c_b) 2380 if(p[pixel[6]] < c_b) 2381 if(p[pixel[7]] < c_b) 2382 if(p[pixel[8]] < c_b) 2383 if(p[pixel[9]] < c_b) 2384 if(p[pixel[10]] < c_b) 2385 if(p[pixel[11]] < c_b) 2386 if(p[pixel[12]] < c_b) 2387 if(p[pixel[13]] < c_b) 2388 {} 2389 else 2390 continue; 2391 else 2392 continue; 2393 else 2394 continue; 2395 else 2396 continue; 2397 else 2398 continue; 2399 else 2400 continue; 2401 else 2402 continue; 2403 else 2404 continue; 2405 else 2406 continue; 2407 else 2408 continue; 2409 else 2410 if(p[pixel[8]] > cb) 2411 if(p[pixel[9]] > cb) 2412 if(p[pixel[10]] > cb) 2413 if(p[pixel[11]] > cb) 2414 if(p[pixel[12]] > cb) 2415 if(p[pixel[13]] > cb) 2416 if(p[pixel[14]] > cb) 2417 if(p[pixel[15]] > cb) 2418 {} 2419 else 2420 if(p[pixel[4]] > cb) 2421 if(p[pixel[5]] > cb) 2422 if(p[pixel[6]] > cb) 2423 if(p[pixel[7]] > cb) 2424 {} 2425 else 2426 continue; 2427 else 2428 continue; 2429 else 2430 continue; 2431 else 2432 continue; 2433 else 2434 continue; 2435 else 2436 continue; 2437 else 2438 continue; 2439 else 2440 continue; 2441 else 2442 continue; 2443 else 2444 continue; 2445 else if(p[pixel[8]] < c_b) 2446 if(p[pixel[5]] < c_b) 2447 if(p[pixel[6]] < c_b) 2448 if(p[pixel[7]] < c_b) 2449 if(p[pixel[9]] < c_b) 2450 if(p[pixel[10]] < c_b) 2451 if(p[pixel[11]] < c_b) 2452 if(p[pixel[12]] < c_b) 2453 if(p[pixel[13]] < c_b) 2454 if(p[pixel[14]] < c_b) 2455 if(p[pixel[4]] < c_b) 2456 {} 2457 else 2458 if(p[pixel[15]] < c_b) 2459 {} 2460 else 2461 continue; 2462 else 2463 continue; 2464 else 2465 continue; 2466 else 2467 continue; 2468 else 2469 continue; 2470 else 2471 continue; 2472 else 2473 continue; 2474 else 2475 continue; 2476 else 2477 continue; 2478 else 2479 continue; 2480 else 2481 continue; 2482 else if(p[pixel[2]] < c_b) 2483 if(p[pixel[7]] > cb) 2484 if(p[pixel[8]] > cb) 2485 if(p[pixel[9]] > cb) 2486 if(p[pixel[10]] > cb) 2487 if(p[pixel[11]] > cb) 2488 if(p[pixel[12]] > cb) 2489 if(p[pixel[13]] > cb) 2490 if(p[pixel[14]] > cb) 2491 if(p[pixel[15]] > cb) 2492 {} 2493 else 2494 if(p[pixel[4]] > cb) 2495 if(p[pixel[5]] > cb) 2496 if(p[pixel[6]] > cb) 2497 {} 2498 else 2499 continue; 2500 else 2501 continue; 2502 else 2503 continue; 2504 else 2505 if(p[pixel[3]] > cb) 2506 if(p[pixel[4]] > cb) 2507 if(p[pixel[5]] > cb) 2508 if(p[pixel[6]] > cb) 2509 {} 2510 else 2511 continue; 2512 else 2513 continue; 2514 else 2515 continue; 2516 else 2517 continue; 2518 else 2519 continue; 2520 else 2521 continue; 2522 else 2523 continue; 2524 else 2525 continue; 2526 else 2527 continue; 2528 else 2529 continue; 2530 else if(p[pixel[7]] < c_b) 2531 if(p[pixel[5]] < c_b) 2532 if(p[pixel[6]] < c_b) 2533 if(p[pixel[8]] < c_b) 2534 if(p[pixel[9]] < c_b) 2535 if(p[pixel[10]] < c_b) 2536 if(p[pixel[11]] < c_b) 2537 if(p[pixel[12]] < c_b) 2538 if(p[pixel[4]] < c_b) 2539 if(p[pixel[3]] < c_b) 2540 {} 2541 else 2542 if(p[pixel[13]] < c_b) 2543 if(p[pixel[14]] < c_b) 2544 {} 2545 else 2546 continue; 2547 else 2548 continue; 2549 else 2550 if(p[pixel[13]] < c_b) 2551 if(p[pixel[14]] < c_b) 2552 if(p[pixel[15]] < c_b) 2553 {} 2554 else 2555 continue; 2556 else 2557 continue; 2558 else 2559 continue; 2560 else 2561 continue; 2562 else 2563 continue; 2564 else 2565 continue; 2566 else 2567 continue; 2568 else 2569 continue; 2570 else 2571 continue; 2572 else 2573 continue; 2574 else 2575 continue; 2576 else 2577 if(p[pixel[7]] > cb) 2578 if(p[pixel[8]] > cb) 2579 if(p[pixel[9]] > cb) 2580 if(p[pixel[10]] > cb) 2581 if(p[pixel[11]] > cb) 2582 if(p[pixel[12]] > cb) 2583 if(p[pixel[13]] > cb) 2584 if(p[pixel[14]] > cb) 2585 if(p[pixel[15]] > cb) 2586 {} 2587 else 2588 if(p[pixel[4]] > cb) 2589 if(p[pixel[5]] > cb) 2590 if(p[pixel[6]] > cb) 2591 {} 2592 else 2593 continue; 2594 else 2595 continue; 2596 else 2597 continue; 2598 else 2599 if(p[pixel[3]] > cb) 2600 if(p[pixel[4]] > cb) 2601 if(p[pixel[5]] > cb) 2602 if(p[pixel[6]] > cb) 2603 {} 2604 else 2605 continue; 2606 else 2607 continue; 2608 else 2609 continue; 2610 else 2611 continue; 2612 else 2613 continue; 2614 else 2615 continue; 2616 else 2617 continue; 2618 else 2619 continue; 2620 else 2621 continue; 2622 else 2623 continue; 2624 else if(p[pixel[7]] < c_b) 2625 if(p[pixel[5]] < c_b) 2626 if(p[pixel[6]] < c_b) 2627 if(p[pixel[8]] < c_b) 2628 if(p[pixel[9]] < c_b) 2629 if(p[pixel[10]] < c_b) 2630 if(p[pixel[11]] < c_b) 2631 if(p[pixel[12]] < c_b) 2632 if(p[pixel[13]] < c_b) 2633 if(p[pixel[4]] < c_b) 2634 if(p[pixel[3]] < c_b) 2635 {} 2636 else 2637 if(p[pixel[14]] < c_b) 2638 {} 2639 else 2640 continue; 2641 else 2642 if(p[pixel[14]] < c_b) 2643 if(p[pixel[15]] < c_b) 2644 {} 2645 else 2646 continue; 2647 else 2648 continue; 2649 else 2650 continue; 2651 else 2652 continue; 2653 else 2654 continue; 2655 else 2656 continue; 2657 else 2658 continue; 2659 else 2660 continue; 2661 else 2662 continue; 2663 else 2664 continue; 2665 else 2666 continue; 2667 else if(p[pixel[1]] < c_b) 2668 if(p[pixel[6]] > cb) 2669 if(p[pixel[7]] > cb) 2670 if(p[pixel[8]] > cb) 2671 if(p[pixel[9]] > cb) 2672 if(p[pixel[10]] > cb) 2673 if(p[pixel[11]] > cb) 2674 if(p[pixel[12]] > cb) 2675 if(p[pixel[13]] > cb) 2676 if(p[pixel[14]] > cb) 2677 if(p[pixel[15]] > cb) 2678 {} 2679 else 2680 if(p[pixel[4]] > cb) 2681 if(p[pixel[5]] > cb) 2682 {} 2683 else 2684 continue; 2685 else 2686 continue; 2687 else 2688 if(p[pixel[3]] > cb) 2689 if(p[pixel[4]] > cb) 2690 if(p[pixel[5]] > cb) 2691 {} 2692 else 2693 continue; 2694 else 2695 continue; 2696 else 2697 continue; 2698 else 2699 if(p[pixel[2]] > cb) 2700 if(p[pixel[3]] > cb) 2701 if(p[pixel[4]] > cb) 2702 if(p[pixel[5]] > cb) 2703 {} 2704 else 2705 continue; 2706 else 2707 continue; 2708 else 2709 continue; 2710 else 2711 continue; 2712 else 2713 continue; 2714 else 2715 continue; 2716 else 2717 continue; 2718 else 2719 continue; 2720 else 2721 continue; 2722 else 2723 continue; 2724 else if(p[pixel[6]] < c_b) 2725 if(p[pixel[5]] < c_b) 2726 if(p[pixel[7]] < c_b) 2727 if(p[pixel[8]] < c_b) 2728 if(p[pixel[9]] < c_b) 2729 if(p[pixel[10]] < c_b) 2730 if(p[pixel[11]] < c_b) 2731 if(p[pixel[4]] < c_b) 2732 if(p[pixel[3]] < c_b) 2733 if(p[pixel[2]] < c_b) 2734 {} 2735 else 2736 if(p[pixel[12]] < c_b) 2737 if(p[pixel[13]] < c_b) 2738 {} 2739 else 2740 continue; 2741 else 2742 continue; 2743 else 2744 if(p[pixel[12]] < c_b) 2745 if(p[pixel[13]] < c_b) 2746 if(p[pixel[14]] < c_b) 2747 {} 2748 else 2749 continue; 2750 else 2751 continue; 2752 else 2753 continue; 2754 else 2755 if(p[pixel[12]] < c_b) 2756 if(p[pixel[13]] < c_b) 2757 if(p[pixel[14]] < c_b) 2758 if(p[pixel[15]] < c_b) 2759 {} 2760 else 2761 continue; 2762 else 2763 continue; 2764 else 2765 continue; 2766 else 2767 continue; 2768 else 2769 continue; 2770 else 2771 continue; 2772 else 2773 continue; 2774 else 2775 continue; 2776 else 2777 continue; 2778 else 2779 continue; 2780 else 2781 continue; 2782 else 2783 if(p[pixel[6]] > cb) 2784 if(p[pixel[7]] > cb) 2785 if(p[pixel[8]] > cb) 2786 if(p[pixel[9]] > cb) 2787 if(p[pixel[10]] > cb) 2788 if(p[pixel[11]] > cb) 2789 if(p[pixel[12]] > cb) 2790 if(p[pixel[13]] > cb) 2791 if(p[pixel[14]] > cb) 2792 if(p[pixel[15]] > cb) 2793 {} 2794 else 2795 if(p[pixel[4]] > cb) 2796 if(p[pixel[5]] > cb) 2797 {} 2798 else 2799 continue; 2800 else 2801 continue; 2802 else 2803 if(p[pixel[3]] > cb) 2804 if(p[pixel[4]] > cb) 2805 if(p[pixel[5]] > cb) 2806 {} 2807 else 2808 continue; 2809 else 2810 continue; 2811 else 2812 continue; 2813 else 2814 if(p[pixel[2]] > cb) 2815 if(p[pixel[3]] > cb) 2816 if(p[pixel[4]] > cb) 2817 if(p[pixel[5]] > cb) 2818 {} 2819 else 2820 continue; 2821 else 2822 continue; 2823 else 2824 continue; 2825 else 2826 continue; 2827 else 2828 continue; 2829 else 2830 continue; 2831 else 2832 continue; 2833 else 2834 continue; 2835 else 2836 continue; 2837 else 2838 continue; 2839 else if(p[pixel[6]] < c_b) 2840 if(p[pixel[5]] < c_b) 2841 if(p[pixel[7]] < c_b) 2842 if(p[pixel[8]] < c_b) 2843 if(p[pixel[9]] < c_b) 2844 if(p[pixel[10]] < c_b) 2845 if(p[pixel[11]] < c_b) 2846 if(p[pixel[12]] < c_b) 2847 if(p[pixel[4]] < c_b) 2848 if(p[pixel[3]] < c_b) 2849 if(p[pixel[2]] < c_b) 2850 {} 2851 else 2852 if(p[pixel[13]] < c_b) 2853 {} 2854 else 2855 continue; 2856 else 2857 if(p[pixel[13]] < c_b) 2858 if(p[pixel[14]] < c_b) 2859 {} 2860 else 2861 continue; 2862 else 2863 continue; 2864 else 2865 if(p[pixel[13]] < c_b) 2866 if(p[pixel[14]] < c_b) 2867 if(p[pixel[15]] < c_b) 2868 {} 2869 else 2870 continue; 2871 else 2872 continue; 2873 else 2874 continue; 2875 else 2876 continue; 2877 else 2878 continue; 2879 else 2880 continue; 2881 else 2882 continue; 2883 else 2884 continue; 2885 else 2886 continue; 2887 else 2888 continue; 2889 else 2890 continue; 2891 else if(p[pixel[0]] < c_b) 2892 if(p[pixel[1]] > cb) 2893 if(p[pixel[6]] > cb) 2894 if(p[pixel[5]] > cb) 2895 if(p[pixel[7]] > cb) 2896 if(p[pixel[8]] > cb) 2897 if(p[pixel[9]] > cb) 2898 if(p[pixel[10]] > cb) 2899 if(p[pixel[11]] > cb) 2900 if(p[pixel[4]] > cb) 2901 if(p[pixel[3]] > cb) 2902 if(p[pixel[2]] > cb) 2903 {} 2904 else 2905 if(p[pixel[12]] > cb) 2906 if(p[pixel[13]] > cb) 2907 {} 2908 else 2909 continue; 2910 else 2911 continue; 2912 else 2913 if(p[pixel[12]] > cb) 2914 if(p[pixel[13]] > cb) 2915 if(p[pixel[14]] > cb) 2916 {} 2917 else 2918 continue; 2919 else 2920 continue; 2921 else 2922 continue; 2923 else 2924 if(p[pixel[12]] > cb) 2925 if(p[pixel[13]] > cb) 2926 if(p[pixel[14]] > cb) 2927 if(p[pixel[15]] > cb) 2928 {} 2929 else 2930 continue; 2931 else 2932 continue; 2933 else 2934 continue; 2935 else 2936 continue; 2937 else 2938 continue; 2939 else 2940 continue; 2941 else 2942 continue; 2943 else 2944 continue; 2945 else 2946 continue; 2947 else 2948 continue; 2949 else if(p[pixel[6]] < c_b) 2950 if(p[pixel[7]] < c_b) 2951 if(p[pixel[8]] < c_b) 2952 if(p[pixel[9]] < c_b) 2953 if(p[pixel[10]] < c_b) 2954 if(p[pixel[11]] < c_b) 2955 if(p[pixel[12]] < c_b) 2956 if(p[pixel[13]] < c_b) 2957 if(p[pixel[14]] < c_b) 2958 if(p[pixel[15]] < c_b) 2959 {} 2960 else 2961 if(p[pixel[4]] < c_b) 2962 if(p[pixel[5]] < c_b) 2963 {} 2964 else 2965 continue; 2966 else 2967 continue; 2968 else 2969 if(p[pixel[3]] < c_b) 2970 if(p[pixel[4]] < c_b) 2971 if(p[pixel[5]] < c_b) 2972 {} 2973 else 2974 continue; 2975 else 2976 continue; 2977 else 2978 continue; 2979 else 2980 if(p[pixel[2]] < c_b) 2981 if(p[pixel[3]] < c_b) 2982 if(p[pixel[4]] < c_b) 2983 if(p[pixel[5]] < c_b) 2984 {} 2985 else 2986 continue; 2987 else 2988 continue; 2989 else 2990 continue; 2991 else 2992 continue; 2993 else 2994 continue; 2995 else 2996 continue; 2997 else 2998 continue; 2999 else 3000 continue; 3001 else 3002 continue; 3003 else 3004 continue; 3005 else 3006 continue; 3007 else if(p[pixel[1]] < c_b) 3008 if(p[pixel[2]] > cb) 3009 if(p[pixel[7]] > cb) 3010 if(p[pixel[5]] > cb) 3011 if(p[pixel[6]] > cb) 3012 if(p[pixel[8]] > cb) 3013 if(p[pixel[9]] > cb) 3014 if(p[pixel[10]] > cb) 3015 if(p[pixel[11]] > cb) 3016 if(p[pixel[12]] > cb) 3017 if(p[pixel[4]] > cb) 3018 if(p[pixel[3]] > cb) 3019 {} 3020 else 3021 if(p[pixel[13]] > cb) 3022 if(p[pixel[14]] > cb) 3023 {} 3024 else 3025 continue; 3026 else 3027 continue; 3028 else 3029 if(p[pixel[13]] > cb) 3030 if(p[pixel[14]] > cb) 3031 if(p[pixel[15]] > cb) 3032 {} 3033 else 3034 continue; 3035 else 3036 continue; 3037 else 3038 continue; 3039 else 3040 continue; 3041 else 3042 continue; 3043 else 3044 continue; 3045 else 3046 continue; 3047 else 3048 continue; 3049 else 3050 continue; 3051 else 3052 continue; 3053 else if(p[pixel[7]] < c_b) 3054 if(p[pixel[8]] < c_b) 3055 if(p[pixel[9]] < c_b) 3056 if(p[pixel[10]] < c_b) 3057 if(p[pixel[11]] < c_b) 3058 if(p[pixel[12]] < c_b) 3059 if(p[pixel[13]] < c_b) 3060 if(p[pixel[14]] < c_b) 3061 if(p[pixel[15]] < c_b) 3062 {} 3063 else 3064 if(p[pixel[4]] < c_b) 3065 if(p[pixel[5]] < c_b) 3066 if(p[pixel[6]] < c_b) 3067 {} 3068 else 3069 continue; 3070 else 3071 continue; 3072 else 3073 continue; 3074 else 3075 if(p[pixel[3]] < c_b) 3076 if(p[pixel[4]] < c_b) 3077 if(p[pixel[5]] < c_b) 3078 if(p[pixel[6]] < c_b) 3079 {} 3080 else 3081 continue; 3082 else 3083 continue; 3084 else 3085 continue; 3086 else 3087 continue; 3088 else 3089 continue; 3090 else 3091 continue; 3092 else 3093 continue; 3094 else 3095 continue; 3096 else 3097 continue; 3098 else 3099 continue; 3100 else 3101 continue; 3102 else if(p[pixel[2]] < c_b) 3103 if(p[pixel[3]] > cb) 3104 if(p[pixel[14]] > cb) 3105 if(p[pixel[5]] > cb) 3106 if(p[pixel[6]] > cb) 3107 if(p[pixel[7]] > cb) 3108 if(p[pixel[8]] > cb) 3109 if(p[pixel[9]] > cb) 3110 if(p[pixel[10]] > cb) 3111 if(p[pixel[11]] > cb) 3112 if(p[pixel[12]] > cb) 3113 if(p[pixel[13]] > cb) 3114 if(p[pixel[4]] > cb) 3115 {} 3116 else 3117 if(p[pixel[15]] > cb) 3118 {} 3119 else 3120 continue; 3121 else 3122 continue; 3123 else 3124 continue; 3125 else 3126 continue; 3127 else 3128 continue; 3129 else 3130 continue; 3131 else 3132 continue; 3133 else 3134 continue; 3135 else 3136 continue; 3137 else 3138 continue; 3139 else if(p[pixel[14]] < c_b) 3140 if(p[pixel[8]] > cb) 3141 if(p[pixel[4]] > cb) 3142 if(p[pixel[5]] > cb) 3143 if(p[pixel[6]] > cb) 3144 if(p[pixel[7]] > cb) 3145 if(p[pixel[9]] > cb) 3146 if(p[pixel[10]] > cb) 3147 if(p[pixel[11]] > cb) 3148 if(p[pixel[12]] > cb) 3149 if(p[pixel[13]] > cb) 3150 {} 3151 else 3152 continue; 3153 else 3154 continue; 3155 else 3156 continue; 3157 else 3158 continue; 3159 else 3160 continue; 3161 else 3162 continue; 3163 else 3164 continue; 3165 else 3166 continue; 3167 else 3168 continue; 3169 else if(p[pixel[8]] < c_b) 3170 if(p[pixel[9]] < c_b) 3171 if(p[pixel[10]] < c_b) 3172 if(p[pixel[11]] < c_b) 3173 if(p[pixel[12]] < c_b) 3174 if(p[pixel[13]] < c_b) 3175 if(p[pixel[15]] < c_b) 3176 {} 3177 else 3178 if(p[pixel[4]] < c_b) 3179 if(p[pixel[5]] < c_b) 3180 if(p[pixel[6]] < c_b) 3181 if(p[pixel[7]] < c_b) 3182 {} 3183 else 3184 continue; 3185 else 3186 continue; 3187 else 3188 continue; 3189 else 3190 continue; 3191 else 3192 continue; 3193 else 3194 continue; 3195 else 3196 continue; 3197 else 3198 continue; 3199 else 3200 continue; 3201 else 3202 continue; 3203 else 3204 if(p[pixel[4]] > cb) 3205 if(p[pixel[5]] > cb) 3206 if(p[pixel[6]] > cb) 3207 if(p[pixel[7]] > cb) 3208 if(p[pixel[8]] > cb) 3209 if(p[pixel[9]] > cb) 3210 if(p[pixel[10]] > cb) 3211 if(p[pixel[11]] > cb) 3212 if(p[pixel[12]] > cb) 3213 if(p[pixel[13]] > cb) 3214 {} 3215 else 3216 continue; 3217 else 3218 continue; 3219 else 3220 continue; 3221 else 3222 continue; 3223 else 3224 continue; 3225 else 3226 continue; 3227 else 3228 continue; 3229 else 3230 continue; 3231 else 3232 continue; 3233 else 3234 continue; 3235 else if(p[pixel[3]] < c_b) 3236 if(p[pixel[4]] > cb) 3237 if(p[pixel[15]] < c_b) 3238 if(p[pixel[9]] > cb) 3239 if(p[pixel[5]] > cb) 3240 if(p[pixel[6]] > cb) 3241 if(p[pixel[7]] > cb) 3242 if(p[pixel[8]] > cb) 3243 if(p[pixel[10]] > cb) 3244 if(p[pixel[11]] > cb) 3245 if(p[pixel[12]] > cb) 3246 if(p[pixel[13]] > cb) 3247 if(p[pixel[14]] > cb) 3248 {} 3249 else 3250 continue; 3251 else 3252 continue; 3253 else 3254 continue; 3255 else 3256 continue; 3257 else 3258 continue; 3259 else 3260 continue; 3261 else 3262 continue; 3263 else 3264 continue; 3265 else 3266 continue; 3267 else if(p[pixel[9]] < c_b) 3268 if(p[pixel[10]] < c_b) 3269 if(p[pixel[11]] < c_b) 3270 if(p[pixel[12]] < c_b) 3271 if(p[pixel[13]] < c_b) 3272 if(p[pixel[14]] < c_b) 3273 {} 3274 else 3275 continue; 3276 else 3277 continue; 3278 else 3279 continue; 3280 else 3281 continue; 3282 else 3283 continue; 3284 else 3285 continue; 3286 else 3287 if(p[pixel[5]] > cb) 3288 if(p[pixel[6]] > cb) 3289 if(p[pixel[7]] > cb) 3290 if(p[pixel[8]] > cb) 3291 if(p[pixel[9]] > cb) 3292 if(p[pixel[10]] > cb) 3293 if(p[pixel[11]] > cb) 3294 if(p[pixel[12]] > cb) 3295 if(p[pixel[13]] > cb) 3296 if(p[pixel[14]] > cb) 3297 {} 3298 else 3299 continue; 3300 else 3301 continue; 3302 else 3303 continue; 3304 else 3305 continue; 3306 else 3307 continue; 3308 else 3309 continue; 3310 else 3311 continue; 3312 else 3313 continue; 3314 else 3315 continue; 3316 else 3317 continue; 3318 else if(p[pixel[4]] < c_b) 3319 if(p[pixel[5]] > cb) 3320 if(p[pixel[10]] > cb) 3321 if(p[pixel[6]] > cb) 3322 if(p[pixel[7]] > cb) 3323 if(p[pixel[8]] > cb) 3324 if(p[pixel[9]] > cb) 3325 if(p[pixel[11]] > cb) 3326 if(p[pixel[12]] > cb) 3327 if(p[pixel[13]] > cb) 3328 if(p[pixel[14]] > cb) 3329 if(p[pixel[15]] > cb) 3330 {} 3331 else 3332 continue; 3333 else 3334 continue; 3335 else 3336 continue; 3337 else 3338 continue; 3339 else 3340 continue; 3341 else 3342 continue; 3343 else 3344 continue; 3345 else 3346 continue; 3347 else 3348 continue; 3349 else if(p[pixel[10]] < c_b) 3350 if(p[pixel[11]] < c_b) 3351 if(p[pixel[12]] < c_b) 3352 if(p[pixel[13]] < c_b) 3353 if(p[pixel[14]] < c_b) 3354 if(p[pixel[15]] < c_b) 3355 {} 3356 else 3357 continue; 3358 else 3359 continue; 3360 else 3361 continue; 3362 else 3363 continue; 3364 else 3365 continue; 3366 else 3367 continue; 3368 else if(p[pixel[5]] < c_b) 3369 if(p[pixel[6]] < c_b) 3370 if(p[pixel[7]] < c_b) 3371 if(p[pixel[8]] < c_b) 3372 if(p[pixel[9]] < c_b) 3373 if(p[pixel[10]] < c_b) 3374 {} 3375 else 3376 if(p[pixel[15]] < c_b) 3377 {} 3378 else 3379 continue; 3380 else 3381 if(p[pixel[14]] < c_b) 3382 if(p[pixel[15]] < c_b) 3383 {} 3384 else 3385 continue; 3386 else 3387 continue; 3388 else 3389 if(p[pixel[13]] < c_b) 3390 if(p[pixel[14]] < c_b) 3391 if(p[pixel[15]] < c_b) 3392 {} 3393 else 3394 continue; 3395 else 3396 continue; 3397 else 3398 continue; 3399 else 3400 if(p[pixel[12]] < c_b) 3401 if(p[pixel[13]] < c_b) 3402 if(p[pixel[14]] < c_b) 3403 if(p[pixel[15]] < c_b) 3404 {} 3405 else 3406 continue; 3407 else 3408 continue; 3409 else 3410 continue; 3411 else 3412 continue; 3413 else 3414 if(p[pixel[11]] < c_b) 3415 if(p[pixel[12]] < c_b) 3416 if(p[pixel[13]] < c_b) 3417 if(p[pixel[14]] < c_b) 3418 if(p[pixel[15]] < c_b) 3419 {} 3420 else 3421 continue; 3422 else 3423 continue; 3424 else 3425 continue; 3426 else 3427 continue; 3428 else 3429 continue; 3430 else 3431 if(p[pixel[10]] < c_b) 3432 if(p[pixel[11]] < c_b) 3433 if(p[pixel[12]] < c_b) 3434 if(p[pixel[13]] < c_b) 3435 if(p[pixel[14]] < c_b) 3436 if(p[pixel[15]] < c_b) 3437 {} 3438 else 3439 continue; 3440 else 3441 continue; 3442 else 3443 continue; 3444 else 3445 continue; 3446 else 3447 continue; 3448 else 3449 continue; 3450 else 3451 if(p[pixel[9]] > cb) 3452 if(p[pixel[5]] > cb) 3453 if(p[pixel[6]] > cb) 3454 if(p[pixel[7]] > cb) 3455 if(p[pixel[8]] > cb) 3456 if(p[pixel[10]] > cb) 3457 if(p[pixel[11]] > cb) 3458 if(p[pixel[12]] > cb) 3459 if(p[pixel[13]] > cb) 3460 if(p[pixel[14]] > cb) 3461 if(p[pixel[15]] > cb) 3462 {} 3463 else 3464 continue; 3465 else 3466 continue; 3467 else 3468 continue; 3469 else 3470 continue; 3471 else 3472 continue; 3473 else 3474 continue; 3475 else 3476 continue; 3477 else 3478 continue; 3479 else 3480 continue; 3481 else 3482 continue; 3483 else if(p[pixel[9]] < c_b) 3484 if(p[pixel[10]] < c_b) 3485 if(p[pixel[11]] < c_b) 3486 if(p[pixel[12]] < c_b) 3487 if(p[pixel[13]] < c_b) 3488 if(p[pixel[14]] < c_b) 3489 if(p[pixel[15]] < c_b) 3490 {} 3491 else 3492 continue; 3493 else 3494 continue; 3495 else 3496 continue; 3497 else 3498 continue; 3499 else 3500 continue; 3501 else 3502 continue; 3503 else 3504 continue; 3505 else 3506 if(p[pixel[8]] > cb) 3507 if(p[pixel[5]] > cb) 3508 if(p[pixel[6]] > cb) 3509 if(p[pixel[7]] > cb) 3510 if(p[pixel[9]] > cb) 3511 if(p[pixel[10]] > cb) 3512 if(p[pixel[11]] > cb) 3513 if(p[pixel[12]] > cb) 3514 if(p[pixel[13]] > cb) 3515 if(p[pixel[14]] > cb) 3516 if(p[pixel[4]] > cb) 3517 {} 3518 else 3519 if(p[pixel[15]] > cb) 3520 {} 3521 else 3522 continue; 3523 else 3524 continue; 3525 else 3526 continue; 3527 else 3528 continue; 3529 else 3530 continue; 3531 else 3532 continue; 3533 else 3534 continue; 3535 else 3536 continue; 3537 else 3538 continue; 3539 else 3540 continue; 3541 else if(p[pixel[8]] < c_b) 3542 if(p[pixel[9]] < c_b) 3543 if(p[pixel[10]] < c_b) 3544 if(p[pixel[11]] < c_b) 3545 if(p[pixel[12]] < c_b) 3546 if(p[pixel[13]] < c_b) 3547 if(p[pixel[14]] < c_b) 3548 if(p[pixel[15]] < c_b) 3549 {} 3550 else 3551 if(p[pixel[4]] < c_b) 3552 if(p[pixel[5]] < c_b) 3553 if(p[pixel[6]] < c_b) 3554 if(p[pixel[7]] < c_b) 3555 {} 3556 else 3557 continue; 3558 else 3559 continue; 3560 else 3561 continue; 3562 else 3563 continue; 3564 else 3565 continue; 3566 else 3567 continue; 3568 else 3569 continue; 3570 else 3571 continue; 3572 else 3573 continue; 3574 else 3575 continue; 3576 else 3577 continue; 3578 else 3579 if(p[pixel[7]] > cb) 3580 if(p[pixel[5]] > cb) 3581 if(p[pixel[6]] > cb) 3582 if(p[pixel[8]] > cb) 3583 if(p[pixel[9]] > cb) 3584 if(p[pixel[10]] > cb) 3585 if(p[pixel[11]] > cb) 3586 if(p[pixel[12]] > cb) 3587 if(p[pixel[13]] > cb) 3588 if(p[pixel[4]] > cb) 3589 if(p[pixel[3]] > cb) 3590 {} 3591 else 3592 if(p[pixel[14]] > cb) 3593 {} 3594 else 3595 continue; 3596 else 3597 if(p[pixel[14]] > cb) 3598 if(p[pixel[15]] > cb) 3599 {} 3600 else 3601 continue; 3602 else 3603 continue; 3604 else 3605 continue; 3606 else 3607 continue; 3608 else 3609 continue; 3610 else 3611 continue; 3612 else 3613 continue; 3614 else 3615 continue; 3616 else 3617 continue; 3618 else 3619 continue; 3620 else if(p[pixel[7]] < c_b) 3621 if(p[pixel[8]] < c_b) 3622 if(p[pixel[9]] < c_b) 3623 if(p[pixel[10]] < c_b) 3624 if(p[pixel[11]] < c_b) 3625 if(p[pixel[12]] < c_b) 3626 if(p[pixel[13]] < c_b) 3627 if(p[pixel[14]] < c_b) 3628 if(p[pixel[15]] < c_b) 3629 {} 3630 else 3631 if(p[pixel[4]] < c_b) 3632 if(p[pixel[5]] < c_b) 3633 if(p[pixel[6]] < c_b) 3634 {} 3635 else 3636 continue; 3637 else 3638 continue; 3639 else 3640 continue; 3641 else 3642 if(p[pixel[3]] < c_b) 3643 if(p[pixel[4]] < c_b) 3644 if(p[pixel[5]] < c_b) 3645 if(p[pixel[6]] < c_b) 3646 {} 3647 else 3648 continue; 3649 else 3650 continue; 3651 else 3652 continue; 3653 else 3654 continue; 3655 else 3656 continue; 3657 else 3658 continue; 3659 else 3660 continue; 3661 else 3662 continue; 3663 else 3664 continue; 3665 else 3666 continue; 3667 else 3668 continue; 3669 else 3670 if(p[pixel[6]] > cb) 3671 if(p[pixel[5]] > cb) 3672 if(p[pixel[7]] > cb) 3673 if(p[pixel[8]] > cb) 3674 if(p[pixel[9]] > cb) 3675 if(p[pixel[10]] > cb) 3676 if(p[pixel[11]] > cb) 3677 if(p[pixel[12]] > cb) 3678 if(p[pixel[4]] > cb) 3679 if(p[pixel[3]] > cb) 3680 if(p[pixel[2]] > cb) 3681 {} 3682 else 3683 if(p[pixel[13]] > cb) 3684 {} 3685 else 3686 continue; 3687 else 3688 if(p[pixel[13]] > cb) 3689 if(p[pixel[14]] > cb) 3690 {} 3691 else 3692 continue; 3693 else 3694 continue; 3695 else 3696 if(p[pixel[13]] > cb) 3697 if(p[pixel[14]] > cb) 3698 if(p[pixel[15]] > cb) 3699 {} 3700 else 3701 continue; 3702 else 3703 continue; 3704 else 3705 continue; 3706 else 3707 continue; 3708 else 3709 continue; 3710 else 3711 continue; 3712 else 3713 continue; 3714 else 3715 continue; 3716 else 3717 continue; 3718 else 3719 continue; 3720 else if(p[pixel[6]] < c_b) 3721 if(p[pixel[7]] < c_b) 3722 if(p[pixel[8]] < c_b) 3723 if(p[pixel[9]] < c_b) 3724 if(p[pixel[10]] < c_b) 3725 if(p[pixel[11]] < c_b) 3726 if(p[pixel[12]] < c_b) 3727 if(p[pixel[13]] < c_b) 3728 if(p[pixel[14]] < c_b) 3729 if(p[pixel[15]] < c_b) 3730 {} 3731 else 3732 if(p[pixel[4]] < c_b) 3733 if(p[pixel[5]] < c_b) 3734 {} 3735 else 3736 continue; 3737 else 3738 continue; 3739 else 3740 if(p[pixel[3]] < c_b) 3741 if(p[pixel[4]] < c_b) 3742 if(p[pixel[5]] < c_b) 3743 {} 3744 else 3745 continue; 3746 else 3747 continue; 3748 else 3749 continue; 3750 else 3751 if(p[pixel[2]] < c_b) 3752 if(p[pixel[3]] < c_b) 3753 if(p[pixel[4]] < c_b) 3754 if(p[pixel[5]] < c_b) 3755 {} 3756 else 3757 continue; 3758 else 3759 continue; 3760 else 3761 continue; 3762 else 3763 continue; 3764 else 3765 continue; 3766 else 3767 continue; 3768 else 3769 continue; 3770 else 3771 continue; 3772 else 3773 continue; 3774 else 3775 continue; 3776 else 3777 continue; 3778 else 3779 if(p[pixel[5]] > cb) 3780 if(p[pixel[6]] > cb) 3781 if(p[pixel[7]] > cb) 3782 if(p[pixel[8]] > cb) 3783 if(p[pixel[9]] > cb) 3784 if(p[pixel[10]] > cb) 3785 if(p[pixel[11]] > cb) 3786 if(p[pixel[4]] > cb) 3787 if(p[pixel[3]] > cb) 3788 if(p[pixel[2]] > cb) 3789 if(p[pixel[1]] > cb) 3790 {} 3791 else 3792 if(p[pixel[12]] > cb) 3793 {} 3794 else 3795 continue; 3796 else 3797 if(p[pixel[12]] > cb) 3798 if(p[pixel[13]] > cb) 3799 {} 3800 else 3801 continue; 3802 else 3803 continue; 3804 else 3805 if(p[pixel[12]] > cb) 3806 if(p[pixel[13]] > cb) 3807 if(p[pixel[14]] > cb) 3808 {} 3809 else 3810 continue; 3811 else 3812 continue; 3813 else 3814 continue; 3815 else 3816 if(p[pixel[12]] > cb) 3817 if(p[pixel[13]] > cb) 3818 if(p[pixel[14]] > cb) 3819 if(p[pixel[15]] > cb) 3820 {} 3821 else 3822 continue; 3823 else 3824 continue; 3825 else 3826 continue; 3827 else 3828 continue; 3829 else 3830 continue; 3831 else 3832 continue; 3833 else 3834 continue; 3835 else 3836 continue; 3837 else 3838 continue; 3839 else 3840 continue; 3841 else if(p[pixel[5]] < c_b) 3842 if(p[pixel[6]] < c_b) 3843 if(p[pixel[7]] < c_b) 3844 if(p[pixel[8]] < c_b) 3845 if(p[pixel[9]] < c_b) 3846 if(p[pixel[10]] < c_b) 3847 if(p[pixel[11]] < c_b) 3848 if(p[pixel[4]] < c_b) 3849 if(p[pixel[3]] < c_b) 3850 if(p[pixel[2]] < c_b) 3851 if(p[pixel[1]] < c_b) 3852 {} 3853 else 3854 if(p[pixel[12]] < c_b) 3855 {} 3856 else 3857 continue; 3858 else 3859 if(p[pixel[12]] < c_b) 3860 if(p[pixel[13]] < c_b) 3861 {} 3862 else 3863 continue; 3864 else 3865 continue; 3866 else 3867 if(p[pixel[12]] < c_b) 3868 if(p[pixel[13]] < c_b) 3869 if(p[pixel[14]] < c_b) 3870 {} 3871 else 3872 continue; 3873 else 3874 continue; 3875 else 3876 continue; 3877 else 3878 if(p[pixel[12]] < c_b) 3879 if(p[pixel[13]] < c_b) 3880 if(p[pixel[14]] < c_b) 3881 if(p[pixel[15]] < c_b) 3882 {} 3883 else 3884 continue; 3885 else 3886 continue; 3887 else 3888 continue; 3889 else 3890 continue; 3891 else 3892 continue; 3893 else 3894 continue; 3895 else 3896 continue; 3897 else 3898 continue; 3899 else 3900 continue; 3901 else 3902 continue; 3903 else 3904 continue; 3905 if(num_corners == rsize) 3906 { 3907 rsize*=2; 3908 ret_corners = cast(xy*)realloc(ret_corners, xy.sizeof*rsize); 3909 } 3910 3911 ret_corners[num_corners].x = x; 3912 ret_corners[num_corners].y = y; 3913 num_corners++; 3914 } 3915 3916 *ret_num_corners = num_corners; 3917 return ret_corners; 3918 3919 } 3920 3921 3922