int main(int argc, char** argv) { int counter = 0; ccv_dense_matrix_t* image = 0; ccv_enable_default_cache(); ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE); if (image != 0) { ccv_array_t* words = ccv_swt_detect_words(image, ccv_swt_default_params); if (words) { int i; for (i = 0; i < words->rnum; i++) { char filename[256]; ccv_matrix_t* box = 0; ccv_rect_t* rect = (ccv_rect_t*)ccv_array_get(words, i); ccv_slice(image, &box, 0, rect->y, rect->x, rect->height, rect->width); printf("%d %d %d %d\n", rect->x, rect->y, rect->width, rect->height); snprintf(filename, 256, "out-%d.png", ++counter); ccv_write(box, filename, NULL, CCV_IO_PNG_FILE, NULL); } } ccv_array_free(words); } ccv_drain_cache(); return 0; }
void TDetector::pdetect(ccv_dense_matrix_t* image, std::vector<Text2D>& text2d) { text2d.clear(); //text2d.erase(text2d.begin(), text2d.end()); if (image != 0) { for (int i = 0; i < params.size(); i++) { ccv_array_t* words = ccv_swt_detect_words(image, params.at(i)); if (words) { text2d.reserve(words->rnum); ccv_rect_t* rect; for (int j = 0; j < words->rnum; j++) { rect = (ccv_rect_t*) ccv_array_get(words, j); //printf("%d %d %d %d\n", rect->x, rect->y, rect->width, rect->height); text2d.push_back( Text2D(rect->x, rect->y, rect->x + rect->width, rect->y + rect->height, "")); } ccv_array_free(words); } } ccv_matrix_free(image); } }