54 struct point_t *ret_corners = malloc(
sizeof(
struct point_t) * rsize);
66 for (y = 3 + y_padding; y < img->
h - 3 - y_padding; y++)
67 for (x = 3 + x_padding; x < img->
w - 3 - x_padding; x++) {
70 bool_t need_skip =
FALSE;
73 for (i = 0; i < corner_cnt; i++) {
74 if (x - min_dist < ret_corners[i].x && ret_corners[i].x < x + min_dist
75 && y - min_dist < ret_corners[i].y && ret_corners[i].y < y + min_dist) {
89 const uint8_t *
p = ((
uint8_t *)img->
buf) + y * img->
w * pixel_size + x * pixel_size + pixel_size / 2;
100 if (p[pixel[6]] > cb)
101 if (p[pixel[7]] > cb)
102 if (p[pixel[8]] > cb)
104 else if (p[pixel[15]] > cb)
109 else if (p[pixel[7]] < c_b)
110 if (p[pixel[14]] > cb)
111 if (p[pixel[15]] > cb)
116 else if (p[pixel[14]] < c_b)
117 if (p[pixel[8]] < c_b)
118 if (p[pixel[9]] < c_b)
119 if (p[pixel[10]] < 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[15]] < c_b)
149 else if (p[pixel[14]] > cb)
150 if (p[pixel[15]] > cb)
158 else if (p[pixel[6]] < c_b)
159 if (p[pixel[15]] > cb)
160 if (p[pixel[13]] > cb)
161 if (p[pixel[14]] > cb)
166 else if (p[pixel[13]] < c_b)
167 if (p[pixel[7]] < c_b)
168 if (p[pixel[8]] < c_b)
169 if (p[pixel[9]] < c_b)
170 if (p[pixel[10]] < c_b)
171 if (p[pixel[11]] < c_b)
172 if (p[pixel[12]] < c_b)
173 if (p[pixel[14]] < c_b)
199 else if (p[pixel[7]] < c_b)
200 if (p[pixel[8]] < c_b)
201 if (p[pixel[9]] < c_b)
202 if (p[pixel[10]] < c_b)
203 if (p[pixel[11]] < c_b)
204 if (p[pixel[12]] < c_b)
205 if (p[pixel[13]] < c_b)
206 if (p[pixel[14]] < c_b)
232 else if (p[pixel[13]] > cb)
233 if (p[pixel[14]] > cb)
234 if (p[pixel[15]] > cb)
242 else if (p[pixel[13]] < c_b)
243 if (p[pixel[7]] < c_b)
244 if (p[pixel[8]] < c_b)
245 if (p[pixel[9]] < c_b)
246 if (p[pixel[10]] < c_b)
247 if (p[pixel[11]] < c_b)
248 if (p[pixel[12]] < c_b)
249 if (p[pixel[14]] < c_b)
250 if (p[pixel[15]] < c_b)
279 else if (p[pixel[5]] < c_b)
280 if (p[pixel[14]] > cb)
281 if (p[pixel[12]] > cb)
282 if (p[pixel[13]] > cb)
283 if (p[pixel[15]] > cb)
285 else if (p[pixel[6]] > cb)
286 if (p[pixel[7]] > cb)
287 if (p[pixel[8]] > cb)
288 if (p[pixel[9]] > cb)
289 if (p[pixel[10]] > cb)
290 if (p[pixel[11]] > cb)
313 else if (p[pixel[12]] < c_b)
314 if (p[pixel[6]] < c_b)
315 if (p[pixel[7]] < c_b)
316 if (p[pixel[8]] < c_b)
317 if (p[pixel[9]] < c_b)
318 if (p[pixel[10]] < c_b)
319 if (p[pixel[11]] < c_b)
320 if (p[pixel[13]] < c_b)
346 else if (p[pixel[14]] < c_b)
347 if (p[pixel[7]] < c_b)
348 if (p[pixel[8]] < c_b)
349 if (p[pixel[9]] < c_b)
350 if (p[pixel[10]] < c_b)
351 if (p[pixel[11]] < c_b)
352 if (p[pixel[12]] < c_b)
353 if (p[pixel[13]] < c_b)
354 if (p[pixel[6]] < c_b)
356 else if (p[pixel[15]] < c_b)
382 else if (p[pixel[6]] < c_b)
383 if (p[pixel[7]] < c_b)
384 if (p[pixel[8]] < c_b)
385 if (p[pixel[9]] < c_b)
386 if (p[pixel[10]] < c_b)
387 if (p[pixel[11]] < c_b)
388 if (p[pixel[12]] < c_b)
389 if (p[pixel[13]] < c_b)
415 else if (p[pixel[12]] > cb)
416 if (p[pixel[13]] > cb)
417 if (p[pixel[14]] > cb)
418 if (p[pixel[15]] > cb)
420 else if (p[pixel[6]] > cb)
421 if (p[pixel[7]] > cb)
422 if (p[pixel[8]] > cb)
423 if (p[pixel[9]] > cb)
424 if (p[pixel[10]] > cb)
425 if (p[pixel[11]] > cb)
451 else if (p[pixel[12]] < c_b)
452 if (p[pixel[7]] < c_b)
453 if (p[pixel[8]] < c_b)
454 if (p[pixel[9]] < c_b)
455 if (p[pixel[10]] < c_b)
456 if (p[pixel[11]] < c_b)
457 if (p[pixel[13]] < c_b)
458 if (p[pixel[14]] < c_b)
459 if (p[pixel[6]] < c_b)
461 else if (p[pixel[15]] < c_b)
490 else if (p[pixel[4]] < c_b)
491 if (p[pixel[13]] > cb)
492 if (p[pixel[11]] > cb)
493 if (p[pixel[12]] > cb)
494 if (p[pixel[14]] > cb)
495 if (p[pixel[15]] > cb)
497 else if (p[pixel[6]] > cb)
498 if (p[pixel[7]] > cb)
499 if (p[pixel[8]] > cb)
500 if (p[pixel[9]] > cb)
501 if (p[pixel[10]] > cb)
518 else if (p[pixel[5]] > cb)
519 if (p[pixel[6]] > cb)
520 if (p[pixel[7]] > cb)
521 if (p[pixel[8]] > cb)
522 if (p[pixel[9]] > cb)
523 if (p[pixel[10]] > cb)
546 else if (p[pixel[11]] < c_b)
547 if (p[pixel[5]] < c_b)
548 if (p[pixel[6]] < c_b)
549 if (p[pixel[7]] < c_b)
550 if (p[pixel[8]] < c_b)
551 if (p[pixel[9]] < c_b)
552 if (p[pixel[10]] < c_b)
553 if (p[pixel[12]] < c_b)
579 else if (p[pixel[13]] < c_b)
580 if (p[pixel[7]] < c_b)
581 if (p[pixel[8]] < c_b)
582 if (p[pixel[9]] < c_b)
583 if (p[pixel[10]] < c_b)
584 if (p[pixel[11]] < c_b)
585 if (p[pixel[12]] < c_b)
586 if (p[pixel[6]] < c_b)
587 if (p[pixel[5]] < c_b)
589 else if (p[pixel[14]] < c_b)
594 else if (p[pixel[14]] < c_b)
595 if (p[pixel[15]] < c_b)
621 else if (p[pixel[5]] < c_b)
622 if (p[pixel[6]] < c_b)
623 if (p[pixel[7]] < c_b)
624 if (p[pixel[8]] < c_b)
625 if (p[pixel[9]] < c_b)
626 if (p[pixel[10]] < c_b)
627 if (p[pixel[11]] < c_b)
628 if (p[pixel[12]] < c_b)
654 else if (p[pixel[11]] > cb)
655 if (p[pixel[12]] > cb)
656 if (p[pixel[13]] > cb)
657 if (p[pixel[14]] > cb)
658 if (p[pixel[15]] > cb)
660 else if (p[pixel[6]] > cb)
661 if (p[pixel[7]] > cb)
662 if (p[pixel[8]] > cb)
663 if (p[pixel[9]] > cb)
664 if (p[pixel[10]] > cb)
681 else if (p[pixel[5]] > cb)
682 if (p[pixel[6]] > cb)
683 if (p[pixel[7]] > cb)
684 if (p[pixel[8]] > cb)
685 if (p[pixel[9]] > cb)
686 if (p[pixel[10]] > cb)
712 else if (p[pixel[11]] < c_b)
713 if (p[pixel[7]] < c_b)
714 if (p[pixel[8]] < c_b)
715 if (p[pixel[9]] < c_b)
716 if (p[pixel[10]] < c_b)
717 if (p[pixel[12]] < c_b)
718 if (p[pixel[13]] < c_b)
719 if (p[pixel[6]] < c_b)
720 if (p[pixel[5]] < c_b)
722 else if (p[pixel[14]] < c_b)
727 else if (p[pixel[14]] < c_b)
728 if (p[pixel[15]] < c_b)
757 else if (p[pixel[3]] < c_b)
758 if (p[pixel[10]] > cb)
759 if (p[pixel[11]] > cb)
760 if (p[pixel[12]] > cb)
761 if (p[pixel[13]] > cb)
762 if (p[pixel[14]] > cb)
763 if (p[pixel[15]] > cb)
765 else if (p[pixel[6]] > cb)
766 if (p[pixel[7]] > cb)
767 if (p[pixel[8]] > cb)
768 if (p[pixel[9]] > cb)
782 else if (p[pixel[5]] > cb)
783 if (p[pixel[6]] > cb)
784 if (p[pixel[7]] > cb)
785 if (p[pixel[8]] > cb)
786 if (p[pixel[9]] > cb)
803 else if (p[pixel[4]] > cb)
804 if (p[pixel[5]] > cb)
805 if (p[pixel[6]] > cb)
806 if (p[pixel[7]] > cb)
807 if (p[pixel[8]] > cb)
808 if (p[pixel[9]] > cb)
834 else if (p[pixel[10]] < c_b)
835 if (p[pixel[7]] < c_b)
836 if (p[pixel[8]] < c_b)
837 if (p[pixel[9]] < c_b)
838 if (p[pixel[11]] < c_b)
839 if (p[pixel[6]] < c_b)
840 if (p[pixel[5]] < c_b)
841 if (p[pixel[4]] < c_b)
843 else if (p[pixel[12]] < c_b)
844 if (p[pixel[13]] < c_b)
852 else if (p[pixel[12]] < c_b)
853 if (p[pixel[13]] < c_b)
854 if (p[pixel[14]] < c_b)
865 else if (p[pixel[12]] < c_b)
866 if (p[pixel[13]] < c_b)
867 if (p[pixel[14]] < c_b)
868 if (p[pixel[15]] < c_b)
897 else if (p[pixel[10]] > cb)
898 if (p[pixel[11]] > cb)
899 if (p[pixel[12]] > cb)
900 if (p[pixel[13]] > cb)
901 if (p[pixel[14]] > cb)
902 if (p[pixel[15]] > cb)
904 else if (p[pixel[6]] > cb)
905 if (p[pixel[7]] > cb)
906 if (p[pixel[8]] > cb)
907 if (p[pixel[9]] > cb)
921 else if (p[pixel[5]] > cb)
922 if (p[pixel[6]] > cb)
923 if (p[pixel[7]] > cb)
924 if (p[pixel[8]] > cb)
925 if (p[pixel[9]] > cb)
942 else if (p[pixel[4]] > cb)
943 if (p[pixel[5]] > cb)
944 if (p[pixel[6]] > cb)
945 if (p[pixel[7]] > cb)
946 if (p[pixel[8]] > cb)
947 if (p[pixel[9]] > cb)
973 else if (p[pixel[10]] < c_b)
974 if (p[pixel[7]] < c_b)
975 if (p[pixel[8]] < c_b)
976 if (p[pixel[9]] < c_b)
977 if (p[pixel[11]] < c_b)
978 if (p[pixel[12]] < c_b)
979 if (p[pixel[6]] < c_b)
980 if (p[pixel[5]] < c_b)
981 if (p[pixel[4]] < c_b)
983 else if (p[pixel[13]] < c_b)
988 else if (p[pixel[13]] < c_b)
989 if (p[pixel[14]] < c_b)
997 else if (p[pixel[13]] < c_b)
998 if (p[pixel[14]] < c_b)
999 if (p[pixel[15]] < c_b)
1028 else if (p[pixel[2]] < c_b)
1029 if (p[pixel[9]] > cb)
1030 if (p[pixel[10]] > cb)
1031 if (p[pixel[11]] > cb)
1032 if (p[pixel[12]] > cb)
1033 if (p[pixel[13]] > cb)
1034 if (p[pixel[14]] > cb)
1035 if (p[pixel[15]] > cb)
1037 else if (p[pixel[6]] > cb)
1038 if (p[pixel[7]] > cb)
1039 if (p[pixel[8]] > cb)
1050 else if (p[pixel[5]] > cb)
1051 if (p[pixel[6]] > cb)
1052 if (p[pixel[7]] > cb)
1053 if (p[pixel[8]] > cb)
1067 else if (p[pixel[4]] > cb)
1068 if (p[pixel[5]] > cb)
1069 if (p[pixel[6]] > cb)
1070 if (p[pixel[7]] > cb)
1071 if (p[pixel[8]] > cb)
1088 else if (p[pixel[3]] > cb)
1089 if (p[pixel[4]] > cb)
1090 if (p[pixel[5]] > cb)
1091 if (p[pixel[6]] > cb)
1092 if (p[pixel[7]] > cb)
1093 if (p[pixel[8]] > cb)
1119 else if (p[pixel[9]] < c_b)
1120 if (p[pixel[7]] < c_b)
1121 if (p[pixel[8]] < c_b)
1122 if (p[pixel[10]] < c_b)
1123 if (p[pixel[6]] < c_b)
1124 if (p[pixel[5]] < c_b)
1125 if (p[pixel[4]] < c_b)
1126 if (p[pixel[3]] < c_b)
1128 else if (p[pixel[11]] < c_b)
1129 if (p[pixel[12]] < c_b)
1137 else if (p[pixel[11]] < c_b)
1138 if (p[pixel[12]] < c_b)
1139 if (p[pixel[13]] < c_b)
1150 else if (p[pixel[11]] < c_b)
1151 if (p[pixel[12]] < c_b)
1152 if (p[pixel[13]] < c_b)
1153 if (p[pixel[14]] < c_b)
1167 else if (p[pixel[11]] < c_b)
1168 if (p[pixel[12]] < c_b)
1169 if (p[pixel[13]] < c_b)
1170 if (p[pixel[14]] < c_b)
1171 if (p[pixel[15]] < c_b)
1200 else if (p[pixel[9]] > cb)
1201 if (p[pixel[10]] > cb)
1202 if (p[pixel[11]] > cb)
1203 if (p[pixel[12]] > cb)
1204 if (p[pixel[13]] > cb)
1205 if (p[pixel[14]] > cb)
1206 if (p[pixel[15]] > cb)
1208 else if (p[pixel[6]] > cb)
1209 if (p[pixel[7]] > cb)
1210 if (p[pixel[8]] > cb)
1221 else if (p[pixel[5]] > cb)
1222 if (p[pixel[6]] > cb)
1223 if (p[pixel[7]] > cb)
1224 if (p[pixel[8]] > cb)
1238 else if (p[pixel[4]] > cb)
1239 if (p[pixel[5]] > cb)
1240 if (p[pixel[6]] > cb)
1241 if (p[pixel[7]] > cb)
1242 if (p[pixel[8]] > cb)
1259 else if (p[pixel[3]] > cb)
1260 if (p[pixel[4]] > cb)
1261 if (p[pixel[5]] > cb)
1262 if (p[pixel[6]] > cb)
1263 if (p[pixel[7]] > cb)
1264 if (p[pixel[8]] > cb)
1290 else if (p[pixel[9]] < c_b)
1291 if (p[pixel[7]] < c_b)
1292 if (p[pixel[8]] < c_b)
1293 if (p[pixel[10]] < c_b)
1294 if (p[pixel[11]] < c_b)
1295 if (p[pixel[6]] < c_b)
1296 if (p[pixel[5]] < c_b)
1297 if (p[pixel[4]] < c_b)
1298 if (p[pixel[3]] < c_b)
1300 else if (p[pixel[12]] < c_b)
1305 else if (p[pixel[12]] < c_b)
1306 if (p[pixel[13]] < c_b)
1314 else if (p[pixel[12]] < c_b)
1315 if (p[pixel[13]] < c_b)
1316 if (p[pixel[14]] < c_b)
1327 else if (p[pixel[12]] < c_b)
1328 if (p[pixel[13]] < c_b)
1329 if (p[pixel[14]] < c_b)
1330 if (p[pixel[15]] < c_b)
1359 else if (p[pixel[1]] < c_b)
1360 if (p[pixel[8]] > cb)
1361 if (p[pixel[9]] > cb)
1362 if (p[pixel[10]] > cb)
1363 if (p[pixel[11]] > cb)
1364 if (p[pixel[12]] > cb)
1365 if (p[pixel[13]] > cb)
1366 if (p[pixel[14]] > cb)
1367 if (p[pixel[15]] > cb)
1369 else if (p[pixel[6]] > cb)
1370 if (p[pixel[7]] > cb)
1378 else if (p[pixel[5]] > cb)
1379 if (p[pixel[6]] > cb)
1380 if (p[pixel[7]] > cb)
1391 else if (p[pixel[4]] > cb)
1392 if (p[pixel[5]] > cb)
1393 if (p[pixel[6]] > cb)
1394 if (p[pixel[7]] > cb)
1408 else if (p[pixel[3]] > cb)
1409 if (p[pixel[4]] > cb)
1410 if (p[pixel[5]] > cb)
1411 if (p[pixel[6]] > cb)
1412 if (p[pixel[7]] > cb)
1429 else if (p[pixel[2]] > cb)
1430 if (p[pixel[3]] > cb)
1431 if (p[pixel[4]] > cb)
1432 if (p[pixel[5]] > cb)
1433 if (p[pixel[6]] > cb)
1434 if (p[pixel[7]] > cb)
1460 else if (p[pixel[8]] < c_b)
1461 if (p[pixel[7]] < c_b)
1462 if (p[pixel[9]] < c_b)
1463 if (p[pixel[6]] < c_b)
1464 if (p[pixel[5]] < c_b)
1465 if (p[pixel[4]] < c_b)
1466 if (p[pixel[3]] < c_b)
1467 if (p[pixel[2]] < c_b)
1469 else if (p[pixel[10]] < c_b)
1470 if (p[pixel[11]] < c_b)
1478 else if (p[pixel[10]] < c_b)
1479 if (p[pixel[11]] < c_b)
1480 if (p[pixel[12]] < c_b)
1491 else if (p[pixel[10]] < c_b)
1492 if (p[pixel[11]] < c_b)
1493 if (p[pixel[12]] < c_b)
1494 if (p[pixel[13]] < c_b)
1508 else if (p[pixel[10]] < c_b)
1509 if (p[pixel[11]] < c_b)
1510 if (p[pixel[12]] < c_b)
1511 if (p[pixel[13]] < c_b)
1512 if (p[pixel[14]] < c_b)
1529 else if (p[pixel[10]] < c_b)
1530 if (p[pixel[11]] < c_b)
1531 if (p[pixel[12]] < c_b)
1532 if (p[pixel[13]] < c_b)
1533 if (p[pixel[14]] < c_b)
1534 if (p[pixel[15]] < c_b)
1563 else if (p[pixel[8]] > cb)
1564 if (p[pixel[9]] > cb)
1565 if (p[pixel[10]] > cb)
1566 if (p[pixel[11]] > cb)
1567 if (p[pixel[12]] > cb)
1568 if (p[pixel[13]] > cb)
1569 if (p[pixel[14]] > cb)
1570 if (p[pixel[15]] > cb)
1572 else if (p[pixel[6]] > cb)
1573 if (p[pixel[7]] > cb)
1581 else if (p[pixel[5]] > cb)
1582 if (p[pixel[6]] > cb)
1583 if (p[pixel[7]] > cb)
1594 else if (p[pixel[4]] > cb)
1595 if (p[pixel[5]] > cb)
1596 if (p[pixel[6]] > cb)
1597 if (p[pixel[7]] > cb)
1611 else if (p[pixel[3]] > cb)
1612 if (p[pixel[4]] > cb)
1613 if (p[pixel[5]] > cb)
1614 if (p[pixel[6]] > cb)
1615 if (p[pixel[7]] > cb)
1632 else if (p[pixel[2]] > cb)
1633 if (p[pixel[3]] > cb)
1634 if (p[pixel[4]] > cb)
1635 if (p[pixel[5]] > cb)
1636 if (p[pixel[6]] > cb)
1637 if (p[pixel[7]] > cb)
1663 else if (p[pixel[8]] < c_b)
1664 if (p[pixel[7]] < c_b)
1665 if (p[pixel[9]] < c_b)
1666 if (p[pixel[10]] < c_b)
1667 if (p[pixel[6]] < c_b)
1668 if (p[pixel[5]] < c_b)
1669 if (p[pixel[4]] < c_b)
1670 if (p[pixel[3]] < c_b)
1671 if (p[pixel[2]] < c_b)
1673 else if (p[pixel[11]] < c_b)
1678 else if (p[pixel[11]] < c_b)
1679 if (p[pixel[12]] < c_b)
1687 else if (p[pixel[11]] < c_b)
1688 if (p[pixel[12]] < c_b)
1689 if (p[pixel[13]] < c_b)
1700 else if (p[pixel[11]] < c_b)
1701 if (p[pixel[12]] < c_b)
1702 if (p[pixel[13]] < c_b)
1703 if (p[pixel[14]] < c_b)
1717 else if (p[pixel[11]] < c_b)
1718 if (p[pixel[12]] < c_b)
1719 if (p[pixel[13]] < c_b)
1720 if (p[pixel[14]] < c_b)
1721 if (p[pixel[15]] < c_b)
1750 else if (p[pixel[0]] < c_b)
1751 if (p[pixel[1]] > cb)
1752 if (p[pixel[8]] > cb)
1753 if (p[pixel[7]] > cb)
1754 if (p[pixel[9]] > cb)
1755 if (p[pixel[6]] > cb)
1756 if (p[pixel[5]] > cb)
1757 if (p[pixel[4]] > cb)
1758 if (p[pixel[3]] > cb)
1759 if (p[pixel[2]] > cb)
1761 else if (p[pixel[10]] > cb)
1762 if (p[pixel[11]] > cb)
1770 else if (p[pixel[10]] > cb)
1771 if (p[pixel[11]] > cb)
1772 if (p[pixel[12]] > cb)
1783 else if (p[pixel[10]] > cb)
1784 if (p[pixel[11]] > cb)
1785 if (p[pixel[12]] > cb)
1786 if (p[pixel[13]] > cb)
1800 else if (p[pixel[10]] > cb)
1801 if (p[pixel[11]] > cb)
1802 if (p[pixel[12]] > cb)
1803 if (p[pixel[13]] > cb)
1804 if (p[pixel[14]] > cb)
1821 else if (p[pixel[10]] > cb)
1822 if (p[pixel[11]] > cb)
1823 if (p[pixel[12]] > cb)
1824 if (p[pixel[13]] > cb)
1825 if (p[pixel[14]] > cb)
1826 if (p[pixel[15]] > cb)
1852 else if (p[pixel[8]] < c_b)
1853 if (p[pixel[9]] < c_b)
1854 if (p[pixel[10]] < c_b)
1855 if (p[pixel[11]] < c_b)
1856 if (p[pixel[12]] < c_b)
1857 if (p[pixel[13]] < c_b)
1858 if (p[pixel[14]] < c_b)
1859 if (p[pixel[15]] < c_b)
1861 else if (p[pixel[6]] < c_b)
1862 if (p[pixel[7]] < c_b)
1870 else if (p[pixel[5]] < c_b)
1871 if (p[pixel[6]] < c_b)
1872 if (p[pixel[7]] < c_b)
1883 else if (p[pixel[4]] < c_b)
1884 if (p[pixel[5]] < c_b)
1885 if (p[pixel[6]] < c_b)
1886 if (p[pixel[7]] < c_b)
1900 else if (p[pixel[3]] < c_b)
1901 if (p[pixel[4]] < c_b)
1902 if (p[pixel[5]] < c_b)
1903 if (p[pixel[6]] < c_b)
1904 if (p[pixel[7]] < c_b)
1921 else if (p[pixel[2]] < c_b)
1922 if (p[pixel[3]] < c_b)
1923 if (p[pixel[4]] < c_b)
1924 if (p[pixel[5]] < c_b)
1925 if (p[pixel[6]] < c_b)
1926 if (p[pixel[7]] < c_b)
1955 else if (p[pixel[1]] < c_b)
1956 if (p[pixel[2]] > cb)
1957 if (p[pixel[9]] > cb)
1958 if (p[pixel[7]] > cb)
1959 if (p[pixel[8]] > cb)
1960 if (p[pixel[10]] > cb)
1961 if (p[pixel[6]] > cb)
1962 if (p[pixel[5]] > cb)
1963 if (p[pixel[4]] > cb)
1964 if (p[pixel[3]] > cb)
1966 else if (p[pixel[11]] > cb)
1967 if (p[pixel[12]] > cb)
1975 else if (p[pixel[11]] > cb)
1976 if (p[pixel[12]] > cb)
1977 if (p[pixel[13]] > cb)
1988 else if (p[pixel[11]] > cb)
1989 if (p[pixel[12]] > cb)
1990 if (p[pixel[13]] > cb)
1991 if (p[pixel[14]] > cb)
2005 else if (p[pixel[11]] > cb)
2006 if (p[pixel[12]] > cb)
2007 if (p[pixel[13]] > cb)
2008 if (p[pixel[14]] > cb)
2009 if (p[pixel[15]] > cb)
2035 else if (p[pixel[9]] < c_b)
2036 if (p[pixel[10]] < c_b)
2037 if (p[pixel[11]] < c_b)
2038 if (p[pixel[12]] < c_b)
2039 if (p[pixel[13]] < c_b)
2040 if (p[pixel[14]] < c_b)
2041 if (p[pixel[15]] < c_b)
2043 else if (p[pixel[6]] < c_b)
2044 if (p[pixel[7]] < c_b)
2045 if (p[pixel[8]] < c_b)
2056 else if (p[pixel[5]] < c_b)
2057 if (p[pixel[6]] < c_b)
2058 if (p[pixel[7]] < c_b)
2059 if (p[pixel[8]] < c_b)
2073 else if (p[pixel[4]] < c_b)
2074 if (p[pixel[5]] < c_b)
2075 if (p[pixel[6]] < c_b)
2076 if (p[pixel[7]] < c_b)
2077 if (p[pixel[8]] < c_b)
2094 else if (p[pixel[3]] < c_b)
2095 if (p[pixel[4]] < c_b)
2096 if (p[pixel[5]] < c_b)
2097 if (p[pixel[6]] < c_b)
2098 if (p[pixel[7]] < c_b)
2099 if (p[pixel[8]] < c_b)
2128 else if (p[pixel[2]] < c_b)
2129 if (p[pixel[3]] > cb)
2130 if (p[pixel[10]] > cb)
2131 if (p[pixel[7]] > cb)
2132 if (p[pixel[8]] > cb)
2133 if (p[pixel[9]] > cb)
2134 if (p[pixel[11]] > cb)
2135 if (p[pixel[6]] > cb)
2136 if (p[pixel[5]] > cb)
2137 if (p[pixel[4]] > cb)
2139 else if (p[pixel[12]] > cb)
2140 if (p[pixel[13]] > cb)
2148 else if (p[pixel[12]] > cb)
2149 if (p[pixel[13]] > cb)
2150 if (p[pixel[14]] > cb)
2161 else if (p[pixel[12]] > cb)
2162 if (p[pixel[13]] > cb)
2163 if (p[pixel[14]] > cb)
2164 if (p[pixel[15]] > cb)
2190 else if (p[pixel[10]] < c_b)
2191 if (p[pixel[11]] < c_b)
2192 if (p[pixel[12]] < c_b)
2193 if (p[pixel[13]] < c_b)
2194 if (p[pixel[14]] < c_b)
2195 if (p[pixel[15]] < c_b)
2197 else if (p[pixel[6]] < c_b)
2198 if (p[pixel[7]] < c_b)
2199 if (p[pixel[8]] < c_b)
2200 if (p[pixel[9]] < c_b)
2214 else if (p[pixel[5]] < c_b)
2215 if (p[pixel[6]] < c_b)
2216 if (p[pixel[7]] < c_b)
2217 if (p[pixel[8]] < c_b)
2218 if (p[pixel[9]] < c_b)
2235 else if (p[pixel[4]] < c_b)
2236 if (p[pixel[5]] < c_b)
2237 if (p[pixel[6]] < c_b)
2238 if (p[pixel[7]] < c_b)
2239 if (p[pixel[8]] < c_b)
2240 if (p[pixel[9]] < c_b)
2269 else if (p[pixel[3]] < c_b)
2270 if (p[pixel[4]] > cb)
2271 if (p[pixel[13]] > cb)
2272 if (p[pixel[7]] > cb)
2273 if (p[pixel[8]] > cb)
2274 if (p[pixel[9]] > cb)
2275 if (p[pixel[10]] > cb)
2276 if (p[pixel[11]] > cb)
2277 if (p[pixel[12]] > cb)
2278 if (p[pixel[6]] > cb)
2279 if (p[pixel[5]] > cb)
2281 else if (p[pixel[14]] > cb)
2286 else if (p[pixel[14]] > cb)
2287 if (p[pixel[15]] > cb)
2313 else if (p[pixel[13]] < c_b)
2314 if (p[pixel[11]] > cb)
2315 if (p[pixel[5]] > cb)
2316 if (p[pixel[6]] > cb)
2317 if (p[pixel[7]] > cb)
2318 if (p[pixel[8]] > cb)
2319 if (p[pixel[9]] > cb)
2320 if (p[pixel[10]] > cb)
2321 if (p[pixel[12]] > cb)
2344 else if (p[pixel[11]] < c_b)
2345 if (p[pixel[12]] < c_b)
2346 if (p[pixel[14]] < c_b)
2347 if (p[pixel[15]] < c_b)
2349 else if (p[pixel[6]] < c_b)
2350 if (p[pixel[7]] < c_b)
2351 if (p[pixel[8]] < c_b)
2352 if (p[pixel[9]] < c_b)
2353 if (p[pixel[10]] < c_b)
2370 else if (p[pixel[5]] < c_b)
2371 if (p[pixel[6]] < c_b)
2372 if (p[pixel[7]] < c_b)
2373 if (p[pixel[8]] < c_b)
2374 if (p[pixel[9]] < c_b)
2375 if (p[pixel[10]] < c_b)
2401 else if (p[pixel[5]] > cb)
2402 if (p[pixel[6]] > cb)
2403 if (p[pixel[7]] > cb)
2404 if (p[pixel[8]] > cb)
2405 if (p[pixel[9]] > cb)
2406 if (p[pixel[10]] > cb)
2407 if (p[pixel[11]] > cb)
2408 if (p[pixel[12]] > cb)
2434 else if (p[pixel[4]] < c_b)
2435 if (p[pixel[5]] > cb)
2436 if (p[pixel[14]] > cb)
2437 if (p[pixel[7]] > cb)
2438 if (p[pixel[8]] > cb)
2439 if (p[pixel[9]] > cb)
2440 if (p[pixel[10]] > cb)
2441 if (p[pixel[11]] > cb)
2442 if (p[pixel[12]] > cb)
2443 if (p[pixel[13]] > cb)
2444 if (p[pixel[6]] > cb)
2446 else if (p[pixel[15]] > cb)
2472 else if (p[pixel[14]] < c_b)
2473 if (p[pixel[12]] > cb)
2474 if (p[pixel[6]] > cb)
2475 if (p[pixel[7]] > cb)
2476 if (p[pixel[8]] > cb)
2477 if (p[pixel[9]] > cb)
2478 if (p[pixel[10]] > cb)
2479 if (p[pixel[11]] > cb)
2480 if (p[pixel[13]] > cb)
2503 else if (p[pixel[12]] < c_b)
2504 if (p[pixel[13]] < c_b)
2505 if (p[pixel[15]] < c_b)
2507 else if (p[pixel[6]] < c_b)
2508 if (p[pixel[7]] < c_b)
2509 if (p[pixel[8]] < c_b)
2510 if (p[pixel[9]] < c_b)
2511 if (p[pixel[10]] < c_b)
2512 if (p[pixel[11]] < c_b)
2538 else if (p[pixel[6]] > cb)
2539 if (p[pixel[7]] > cb)
2540 if (p[pixel[8]] > cb)
2541 if (p[pixel[9]] > cb)
2542 if (p[pixel[10]] > cb)
2543 if (p[pixel[11]] > cb)
2544 if (p[pixel[12]] > cb)
2545 if (p[pixel[13]] > cb)
2571 else if (p[pixel[5]] < c_b)
2572 if (p[pixel[6]] > cb)
2573 if (p[pixel[15]] < c_b)
2574 if (p[pixel[13]] > cb)
2575 if (p[pixel[7]] > cb)
2576 if (p[pixel[8]] > cb)
2577 if (p[pixel[9]] > cb)
2578 if (p[pixel[10]] > cb)
2579 if (p[pixel[11]] > cb)
2580 if (p[pixel[12]] > cb)
2581 if (p[pixel[14]] > cb)
2604 else if (p[pixel[13]] < c_b)
2605 if (p[pixel[14]] < c_b)
2613 else if (p[pixel[7]] > cb)
2614 if (p[pixel[8]] > cb)
2615 if (p[pixel[9]] > cb)
2616 if (p[pixel[10]] > cb)
2617 if (p[pixel[11]] > cb)
2618 if (p[pixel[12]] > cb)
2619 if (p[pixel[13]] > cb)
2620 if (p[pixel[14]] > cb)
2646 else if (p[pixel[6]] < c_b)
2647 if (p[pixel[7]] > cb)
2648 if (p[pixel[14]] > cb)
2649 if (p[pixel[8]] > cb)
2650 if (p[pixel[9]] > cb)
2651 if (p[pixel[10]] > cb)
2652 if (p[pixel[11]] > cb)
2653 if (p[pixel[12]] > cb)
2654 if (p[pixel[13]] > cb)
2655 if (p[pixel[15]] > cb)
2678 else if (p[pixel[14]] < c_b)
2679 if (p[pixel[15]] < c_b)
2687 else if (p[pixel[7]] < c_b)
2688 if (p[pixel[8]] < c_b)
2690 else if (p[pixel[15]] < c_b)
2695 else if (p[pixel[14]] < c_b)
2696 if (p[pixel[15]] < c_b)
2704 else if (p[pixel[13]] > cb)
2705 if (p[pixel[7]] > cb)
2706 if (p[pixel[8]] > cb)
2707 if (p[pixel[9]] > cb)
2708 if (p[pixel[10]] > cb)
2709 if (p[pixel[11]] > cb)
2710 if (p[pixel[12]] > cb)
2711 if (p[pixel[14]] > cb)
2712 if (p[pixel[15]] > cb)
2738 else if (p[pixel[13]] < c_b)
2739 if (p[pixel[14]] < c_b)
2740 if (p[pixel[15]] < c_b)
2751 else if (p[pixel[12]] > cb)
2752 if (p[pixel[7]] > cb)
2753 if (p[pixel[8]] > cb)
2754 if (p[pixel[9]] > cb)
2755 if (p[pixel[10]] > cb)
2756 if (p[pixel[11]] > cb)
2757 if (p[pixel[13]] > cb)
2758 if (p[pixel[14]] > cb)
2759 if (p[pixel[6]] > cb)
2761 else if (p[pixel[15]] > cb)
2787 else if (p[pixel[12]] < c_b)
2788 if (p[pixel[13]] < c_b)
2789 if (p[pixel[14]] < c_b)
2790 if (p[pixel[15]] < c_b)
2792 else if (p[pixel[6]] < c_b)
2793 if (p[pixel[7]] < c_b)
2794 if (p[pixel[8]] < c_b)
2795 if (p[pixel[9]] < c_b)
2796 if (p[pixel[10]] < c_b)
2797 if (p[pixel[11]] < c_b)
2826 else if (p[pixel[11]] > cb)
2827 if (p[pixel[7]] > cb)
2828 if (p[pixel[8]] > cb)
2829 if (p[pixel[9]] > cb)
2830 if (p[pixel[10]] > cb)
2831 if (p[pixel[12]] > cb)
2832 if (p[pixel[13]] > cb)
2833 if (p[pixel[6]] > cb)
2834 if (p[pixel[5]] > cb)
2836 else if (p[pixel[14]] > cb)
2841 else if (p[pixel[14]] > cb)
2842 if (p[pixel[15]] > cb)
2868 else if (p[pixel[11]] < c_b)
2869 if (p[pixel[12]] < c_b)
2870 if (p[pixel[13]] < c_b)
2871 if (p[pixel[14]] < c_b)
2872 if (p[pixel[15]] < c_b)
2874 else if (p[pixel[6]] < c_b)
2875 if (p[pixel[7]] < c_b)
2876 if (p[pixel[8]] < c_b)
2877 if (p[pixel[9]] < c_b)
2878 if (p[pixel[10]] < c_b)
2895 else if (p[pixel[5]] < c_b)
2896 if (p[pixel[6]] < c_b)
2897 if (p[pixel[7]] < c_b)
2898 if (p[pixel[8]] < c_b)
2899 if (p[pixel[9]] < c_b)
2900 if (p[pixel[10]] < c_b)
2929 else if (p[pixel[10]] > cb)
2930 if (p[pixel[7]] > cb)
2931 if (p[pixel[8]] > cb)
2932 if (p[pixel[9]] > cb)
2933 if (p[pixel[11]] > cb)
2934 if (p[pixel[12]] > cb)
2935 if (p[pixel[6]] > cb)
2936 if (p[pixel[5]] > cb)
2937 if (p[pixel[4]] > cb)
2939 else if (p[pixel[13]] > cb)
2944 else if (p[pixel[13]] > cb)
2945 if (p[pixel[14]] > cb)
2953 else if (p[pixel[13]] > cb)
2954 if (p[pixel[14]] > cb)
2955 if (p[pixel[15]] > cb)
2981 else if (p[pixel[10]] < c_b)
2982 if (p[pixel[11]] < c_b)
2983 if (p[pixel[12]] < c_b)
2984 if (p[pixel[13]] < c_b)
2985 if (p[pixel[14]] < c_b)
2986 if (p[pixel[15]] < c_b)
2988 else if (p[pixel[6]] < c_b)
2989 if (p[pixel[7]] < c_b)
2990 if (p[pixel[8]] < c_b)
2991 if (p[pixel[9]] < c_b)
3005 else if (p[pixel[5]] < c_b)
3006 if (p[pixel[6]] < c_b)
3007 if (p[pixel[7]] < c_b)
3008 if (p[pixel[8]] < c_b)
3009 if (p[pixel[9]] < c_b)
3026 else if (p[pixel[4]] < c_b)
3027 if (p[pixel[5]] < c_b)
3028 if (p[pixel[6]] < c_b)
3029 if (p[pixel[7]] < c_b)
3030 if (p[pixel[8]] < c_b)
3031 if (p[pixel[9]] < c_b)
3060 else if (p[pixel[9]] > cb)
3061 if (p[pixel[7]] > cb)
3062 if (p[pixel[8]] > cb)
3063 if (p[pixel[10]] > cb)
3064 if (p[pixel[11]] > cb)
3065 if (p[pixel[6]] > cb)
3066 if (p[pixel[5]] > cb)
3067 if (p[pixel[4]] > cb)
3068 if (p[pixel[3]] > cb)
3070 else if (p[pixel[12]] > cb)
3075 else if (p[pixel[12]] > cb)
3076 if (p[pixel[13]] > cb)
3084 else if (p[pixel[12]] > cb)
3085 if (p[pixel[13]] > cb)
3086 if (p[pixel[14]] > cb)
3097 else if (p[pixel[12]] > cb)
3098 if (p[pixel[13]] > cb)
3099 if (p[pixel[14]] > cb)
3100 if (p[pixel[15]] > cb)
3126 else if (p[pixel[9]] < c_b)
3127 if (p[pixel[10]] < c_b)
3128 if (p[pixel[11]] < c_b)
3129 if (p[pixel[12]] < c_b)
3130 if (p[pixel[13]] < c_b)
3131 if (p[pixel[14]] < c_b)
3132 if (p[pixel[15]] < c_b)
3134 else if (p[pixel[6]] < c_b)
3135 if (p[pixel[7]] < c_b)
3136 if (p[pixel[8]] < c_b)
3147 else if (p[pixel[5]] < c_b)
3148 if (p[pixel[6]] < c_b)
3149 if (p[pixel[7]] < c_b)
3150 if (p[pixel[8]] < c_b)
3164 else if (p[pixel[4]] < c_b)
3165 if (p[pixel[5]] < c_b)
3166 if (p[pixel[6]] < c_b)
3167 if (p[pixel[7]] < c_b)
3168 if (p[pixel[8]] < c_b)
3185 else if (p[pixel[3]] < c_b)
3186 if (p[pixel[4]] < c_b)
3187 if (p[pixel[5]] < c_b)
3188 if (p[pixel[6]] < c_b)
3189 if (p[pixel[7]] < c_b)
3190 if (p[pixel[8]] < c_b)
3219 else if (p[pixel[8]] > cb)
3220 if (p[pixel[7]] > cb)
3221 if (p[pixel[9]] > cb)
3222 if (p[pixel[10]] > cb)
3223 if (p[pixel[6]] > cb)
3224 if (p[pixel[5]] > cb)
3225 if (p[pixel[4]] > cb)
3226 if (p[pixel[3]] > cb)
3227 if (p[pixel[2]] > cb)
3229 else if (p[pixel[11]] > cb)
3234 else if (p[pixel[11]] > cb)
3235 if (p[pixel[12]] > cb)
3243 else if (p[pixel[11]] > cb)
3244 if (p[pixel[12]] > cb)
3245 if (p[pixel[13]] > cb)
3256 else if (p[pixel[11]] > cb)
3257 if (p[pixel[12]] > cb)
3258 if (p[pixel[13]] > cb)
3259 if (p[pixel[14]] > cb)
3273 else if (p[pixel[11]] > cb)
3274 if (p[pixel[12]] > cb)
3275 if (p[pixel[13]] > cb)
3276 if (p[pixel[14]] > cb)
3277 if (p[pixel[15]] > cb)
3303 else if (p[pixel[8]] < c_b)
3304 if (p[pixel[9]] < c_b)
3305 if (p[pixel[10]] < c_b)
3306 if (p[pixel[11]] < c_b)
3307 if (p[pixel[12]] < c_b)
3308 if (p[pixel[13]] < c_b)
3309 if (p[pixel[14]] < c_b)
3310 if (p[pixel[15]] < c_b)
3312 else if (p[pixel[6]] < c_b)
3313 if (p[pixel[7]] < c_b)
3321 else if (p[pixel[5]] < c_b)
3322 if (p[pixel[6]] < c_b)
3323 if (p[pixel[7]] < c_b)
3334 else if (p[pixel[4]] < c_b)
3335 if (p[pixel[5]] < c_b)
3336 if (p[pixel[6]] < c_b)
3337 if (p[pixel[7]] < c_b)
3351 else if (p[pixel[3]] < c_b)
3352 if (p[pixel[4]] < c_b)
3353 if (p[pixel[5]] < c_b)
3354 if (p[pixel[6]] < c_b)
3355 if (p[pixel[7]] < c_b)
3372 else if (p[pixel[2]] < c_b)
3373 if (p[pixel[3]] < c_b)
3374 if (p[pixel[4]] < c_b)
3375 if (p[pixel[5]] < c_b)
3376 if (p[pixel[6]] < c_b)
3377 if (p[pixel[7]] < c_b)
3406 else if (p[pixel[7]] > cb)
3407 if (p[pixel[8]] > cb)
3408 if (p[pixel[9]] > cb)
3409 if (p[pixel[6]] > cb)
3410 if (p[pixel[5]] > cb)
3411 if (p[pixel[4]] > cb)
3412 if (p[pixel[3]] > cb)
3413 if (p[pixel[2]] > cb)
3414 if (p[pixel[1]] > cb)
3416 else if (p[pixel[10]] > cb)
3421 else if (p[pixel[10]] > cb)
3422 if (p[pixel[11]] > cb)
3430 else if (p[pixel[10]] > cb)
3431 if (p[pixel[11]] > cb)
3432 if (p[pixel[12]] > cb)
3443 else if (p[pixel[10]] > cb)
3444 if (p[pixel[11]] > cb)
3445 if (p[pixel[12]] > cb)
3446 if (p[pixel[13]] > cb)
3460 else if (p[pixel[10]] > cb)
3461 if (p[pixel[11]] > cb)
3462 if (p[pixel[12]] > cb)
3463 if (p[pixel[13]] > cb)
3464 if (p[pixel[14]] > cb)
3481 else if (p[pixel[10]] > cb)
3482 if (p[pixel[11]] > cb)
3483 if (p[pixel[12]] > cb)
3484 if (p[pixel[13]] > cb)
3485 if (p[pixel[14]] > cb)
3486 if (p[pixel[15]] > cb)
3512 else if (p[pixel[7]] < c_b)
3513 if (p[pixel[8]] < c_b)
3514 if (p[pixel[9]] < c_b)
3515 if (p[pixel[6]] < c_b)
3516 if (p[pixel[5]] < c_b)
3517 if (p[pixel[4]] < c_b)
3518 if (p[pixel[3]] < c_b)
3519 if (p[pixel[2]] < c_b)
3520 if (p[pixel[1]] < c_b)
3522 else if (p[pixel[10]] < c_b)
3527 else if (p[pixel[10]] < c_b)
3528 if (p[pixel[11]] < c_b)
3536 else if (p[pixel[10]] < c_b)
3537 if (p[pixel[11]] < c_b)
3538 if (p[pixel[12]] < c_b)
3549 else if (p[pixel[10]] < c_b)
3550 if (p[pixel[11]] < c_b)
3551 if (p[pixel[12]] < c_b)
3552 if (p[pixel[13]] < c_b)
3566 else if (p[pixel[10]] < c_b)
3567 if (p[pixel[11]] < c_b)
3568 if (p[pixel[12]] < c_b)
3569 if (p[pixel[13]] < c_b)
3570 if (p[pixel[14]] < c_b)
3587 else if (p[pixel[10]] < c_b)
3588 if (p[pixel[11]] < c_b)
3589 if (p[pixel[12]] < c_b)
3590 if (p[pixel[13]] < c_b)
3591 if (p[pixel[14]] < c_b)
3592 if (p[pixel[15]] < c_b)
3623 if (corner_cnt == rsize) {
3625 ret_corners = realloc(ret_corners,
sizeof(
struct point_t) * rsize);
3628 ret_corners[corner_cnt].
x =
x;
3629 ret_corners[corner_cnt].
y =
y;
3636 *num_corners = corner_cnt;
3647 pixel[0] = 0 * pixel_size + row_stride * 3 * pixel_size;
3648 pixel[1] = 1 * pixel_size + row_stride * 3 * pixel_size;
3649 pixel[2] = 2 * pixel_size + row_stride * 2 * pixel_size;
3650 pixel[3] = 3 * pixel_size + row_stride * 1 * pixel_size;
3651 pixel[4] = 3 * pixel_size + row_stride * 0 * pixel_size;
3652 pixel[5] = 3 * pixel_size + row_stride * -1 * pixel_size;
3653 pixel[6] = 2 * pixel_size + row_stride * -2 * pixel_size;
3654 pixel[7] = 1 * pixel_size + row_stride * -3 * pixel_size;
3655 pixel[8] = 0 * pixel_size + row_stride * -3 * pixel_size;
3656 pixel[9] = -1 * pixel_size + row_stride * -3 * pixel_size;
3657 pixel[10] = -2 * pixel_size + row_stride * -2 * pixel_size;
3658 pixel[11] = -3 * pixel_size + row_stride * -1 * pixel_size;
3659 pixel[12] = -3 * pixel_size + row_stride * 0 * pixel_size;
3660 pixel[13] = -3 * pixel_size + row_stride * 1 * pixel_size;
3661 pixel[14] = -2 * pixel_size + row_stride * 2 * pixel_size;
3662 pixel[15] = -1 * pixel_size + row_stride * 3 * pixel_size;
uint16_t x
The x coordinate of the point.
struct point_t * fast9_detect(struct image_t *img, uint8_t threshold, uint16_t min_dist, uint16_t x_padding, uint16_t y_padding, uint16_t *num_corners)
Do a FAST9 corner detection.
void * buf
Image buffer (depending on the image_type)
static void fast_make_offsets(int32_t *pixel, uint16_t row_stride, uint8_t pixel_size)
Make offsets for FAST9 calculation.
UYVY format (uint16 per pixel)
uint16_t y
The y coordinate of the point.
enum image_type type
The image type.