Fixed replace_image_to_label(): replaces directories only for Pascal VOC and COCO, replaces only extensions for other.
| | |
| | | src = get_webcam_frame(cap); |
| | | if (!src) return make_empty_image(0, 0, 0); |
| | | } while (src->width < 1 || src->height < 1 || src->nChannels < 1); |
| | | printf("Video stream: %d x %d \n", src->width, src->height); |
| | | } else |
| | | src = get_webcam_frame(cap); |
| | | } |
| | |
| | | |
| | | void find_replace(char *str, char *orig, char *rep, char *output) |
| | | { |
| | | char buffer[4096] = {0}; |
| | | char *buffer = calloc(8192, sizeof(char)); |
| | | char *p; |
| | | |
| | | sprintf(buffer, "%s", str); |
| | |
| | | *p = '\0'; |
| | | |
| | | sprintf(output, "%s%s%s", buffer, rep, p+strlen(orig)); |
| | | free(buffer); |
| | | } |
| | | |
| | | void find_replace_extension(char *str, char *orig, char *rep, char *output) |
| | | { |
| | | char *buffer = calloc(8192, sizeof(char)); |
| | | |
| | | sprintf(buffer, "%s", str); |
| | | char *p = strstr(buffer, orig); |
| | | int offset = (p - buffer); |
| | | int chars_from_end = strlen(buffer) - offset; |
| | | if (!p || chars_from_end != strlen(orig)) { // Is 'orig' even in 'str' AND is 'orig' found at the end of 'str'? |
| | | sprintf(output, "%s", str); |
| | | return; |
| | | } |
| | | |
| | | *p = '\0'; |
| | | |
| | | sprintf(output, "%s%s%s", buffer, rep, p + strlen(orig)); |
| | | free(buffer); |
| | | } |
| | | |
| | | void replace_image_to_label(char *input_path, char *output_path) { |
| | | find_replace(input_path, "images", "labels", output_path); |
| | | find_replace(output_path, "JPEGImages", "labels", output_path); |
| | | find_replace(output_path, ".jpg", ".txt", output_path); |
| | | find_replace(output_path, ".JPG", ".txt", output_path); |
| | | find_replace(output_path, ".jpeg", ".txt", output_path); |
| | | find_replace(output_path, ".JPEG", ".txt", output_path); |
| | | find_replace(output_path, ".png", ".txt", output_path); |
| | | find_replace(output_path, ".PNG", ".txt", output_path); |
| | | find_replace(output_path, ".bmp", ".txt", output_path); |
| | | find_replace(output_path, ".BMP", ".txt", output_path); |
| | | find_replace(output_path, ".ppm", ".txt", output_path); |
| | | find_replace(output_path, ".PPM", ".txt", output_path); |
| | | //find_replace(input_path, "images", "labels", output_path); // COCO |
| | | find_replace(input_path, "images/train2014/", "labels/train2014/", output_path); // COCO |
| | | find_replace(input_path, "images/val2014/", "labels/val2014/", output_path); // COCO |
| | | //find_replace(output_path, "JPEGImages", "labels", output_path); // PascalVOC |
| | | find_replace(output_path, "VOC2007/JPEGImages", "VOC2007/labels", output_path); // PascalVOC |
| | | find_replace(output_path, "VOC2012/JPEGImages", "VOC2012/labels", output_path); // PascalVOC |
| | | // replace only ext of files |
| | | find_replace_extension(output_path, ".jpg", ".txt", output_path); |
| | | find_replace_extension(output_path, ".JPG", ".txt", output_path); |
| | | find_replace_extension(output_path, ".jpeg", ".txt", output_path); |
| | | find_replace_extension(output_path, ".JPEG", ".txt", output_path); |
| | | find_replace_extension(output_path, ".png", ".txt", output_path); |
| | | find_replace_extension(output_path, ".PNG", ".txt", output_path); |
| | | find_replace_extension(output_path, ".bmp", ".txt", output_path); |
| | | find_replace_extension(output_path, ".BMP", ".txt", output_path); |
| | | find_replace_extension(output_path, ".ppm", ".txt", output_path); |
| | | find_replace_extension(output_path, ".PPM", ".txt", output_path); |
| | | } |
| | | |
| | | float sec(clock_t clocks) |