| | |
| | | typedef struct box{ |
| | | int id; |
| | | float x,y,w,h; |
| | | float left, right, top, bottom; |
| | | } box; |
| | | |
| | | box *read_boxes(char *filename, int *n) |
| | |
| | | boxes[count].y = y; |
| | | boxes[count].h = h; |
| | | boxes[count].w = w; |
| | | boxes[count].left = x - w/2; |
| | | boxes[count].right = x + w/2; |
| | | boxes[count].top = y - h/2; |
| | | boxes[count].bottom = y + h/2; |
| | | ++count; |
| | | } |
| | | fclose(file); |
| | |
| | | randomize_boxes(boxes, count); |
| | | float x, y, h, w; |
| | | int id; |
| | | int i, j; |
| | | int i; |
| | | if(background){ |
| | | for(i = 0; i < num_height*num_width*(4+classes+background); i += 4+classes+background){ |
| | | truth[i] = 1; |
| | | } |
| | | } |
| | | for(i = 0; i < count; ++i){ |
| | | x = boxes[i].x; |
| | | y = boxes[i].y; |
| | |
| | | if(j < 0) j = 0; |
| | | if(j >= num_height) j = num_height-1; |
| | | |
| | | float dw = (x - i*box_width)/box_width; |
| | | float dh = (y - j*box_height)/box_height; |
| | | float dw = constrain(0,1, (x - i*box_width)/box_width ); |
| | | float dh = constrain(0,1, (y - j*box_height)/box_height ); |
| | | float th = constrain(0,1, h*(height+jitter)/height ); |
| | | float tw = constrain(0,1, w*(width+jitter)/width ); |
| | | |
| | | int index = (i+j*num_width)*(4+classes+background); |
| | | if(truth[index+classes+background]) continue; |
| | | if(truth[index+classes+background+2]) continue; |
| | | if(background) truth[index++] = 0; |
| | | truth[index+id] = 1; |
| | | index += classes+background; |
| | | index += classes; |
| | | truth[index++] = dh; |
| | | truth[index++] = dw; |
| | | truth[index++] = h*(height+jitter)/height; |
| | | truth[index++] = w*(width+jitter)/width; |
| | | truth[index++] = th; |
| | | truth[index++] = tw; |
| | | } |
| | | free(boxes); |
| | | if(background){ |
| | | for(i = 0; i < num_height*num_width*(4+classes+background); i += 4+classes+background){ |
| | | int object = 0; |
| | | for(j = i; j < i+classes; ++j) if (truth[j]) object = 1; |
| | | truth[i+classes] = !object; |
| | | } |
| | | } |
| | | } |
| | | |
| | | #define NUMCHARS 37 |
| | |
| | | data d; |
| | | d.shallow = 0; |
| | | d.X = load_image_paths(paths, n, h, w); |
| | | d.X.cols = 17100; |
| | | d.y = d.X; |
| | | if(m) free(paths); |
| | | return d; |