亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? training.cpp

?? Ocr source code. provides an Ocr engine that works in C++ language.
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
     swin_vis_height = height;}void tr_drawing_area::set_tools_vars(vector<plist_parsed_char> *sel_chars,                                     vector<int> *split_chars_divider_pos,                                     bool *join_letters, bool *rm_spots,                                     bool *split_chars, bool *search_alternate){     selected_chars = sel_chars;     tool_split_chars_divider_pos = split_chars_divider_pos;     tool_join_letters = join_letters;     tool_rm_spots = rm_spots;     tool_split_chars = split_chars;     tools_search_alternate = search_alternate;}bool tr_drawing_area::on_button_press_event(GdkEventButton *event) {     int x = (int) event->x, y = (int) event->y;     if(click_on_line(y) != -1) {                    if(selecting_lines && (selected_line_index0 == -1))               selected_line_index0 = click_on_line(y);          else if(selecting_lines) {               selected_line_index1 = click_on_line(y);               selecting_lines = false;          }          else {                              selected_line_index = click_on_line(y);               dragging = true;          }     }     else if(click_on_spint_line(x, y) != -1) {                    selected_spint_line_index = click_on_spint_line(x, y);          dragging = true;     }     else if(*tool_split_chars && (split_chars_click_on_line(x, y) != -1)) {          split_chars_line_index = split_chars_click_on_line(x, y);          dragging = true;     }     else if(*tool_join_letters || *tool_rm_spots || *tool_split_chars) {          plist_parsed_char pchar;          pchar = point_to_char(tr_parse_list, x, y, *tools_search_alternate);          if(pchar.pc == NULL)               return true;          for(int i = 0; i < selected_chars->size(); i++) {               if(box_equals_box(pchar.pc->self_node.self_box,                                 (*selected_chars)[i].pc->self_node.self_box))                         return true;          }          selected_chars->push_back(pchar);          if(*tool_split_chars)               tool_split_chars_divider_pos->push_back(               (*selected_chars)[selected_chars->size() - 1].pc->               self_node.self_box.xy.x + 1);                         signals.do_tr_refresh();     }     return true;}bool tr_drawing_area::on_button_release_event(GdkEventButton *event) {     dragging = false;     selected_line_index = -1;     selected_spint_line_index = -1;     refresh();}bool tr_drawing_area::on_motion_notify_event(GdkEventMotion *event) {     if(dragging && *tool_split_chars) {               int x = (int) event->x;          if((x >= (*selected_chars)[split_chars_line_index].pc->             self_node.self_box.xy.x) && (x <=              ((*selected_chars)[split_chars_line_index].pc->              self_node.self_box.xy.x +               (*selected_chars)[split_chars_line_index].pc->              self_node.self_box.horiz_len - 1))) {                              (*tool_split_chars_divider_pos)[split_chars_line_index] = x;               refresh();          }          }     else if(dragging && (selected_line_index != -1)) {          lines[selected_line_index] = (int) event->y;           refresh();     }     else if(dragging && (selected_spint_line_index != -1)) {          spint_lines[selected_spint_line_index] = (int) event->x;          refresh();     }     return true;}bool tr_drawing_area::on_expose_event(GdkEventExpose *event) {     if(need_valid_vis) {          swin_vis_x = min(swin_vis_x, event->area.x);          swin_vis_y = min(swin_vis_y, event->area.y);          swin_vis_width = min(swin_vis_width, event->area.width);          swin_vis_height = min(swin_vis_height, event->area.height);          need_valid_vis = false;     }     refresh();     return true;}void tr_drawing_area::on_signal_tr_refresh() {     refresh();}void tr_drawing_area::on_signal_tr_clear_int_lines() {     lines.clear();     spint_lines.clear();}void tr_drawing_area::draw_image() {     Glib::RefPtr<Gdk::GC> gc = get_style()->get_black_gc();     Glib::RefPtr<Gdk::Window> win = get_window();          if(dragging) {                    unsigned char *buf_start;          buf_start = pf->buf + (3 * pf->width) * swin_vis_y + 3 * swin_vis_x;          win->draw_rgb_image(gc, swin_vis_x, swin_vis_y, swin_vis_width,                               swin_vis_height, Gdk::RGB_DITHER_MAX,                               buf_start, 3 * (pf->width));          }     else {                    int height = pf->height, width = pf->width;          win->draw_rgb_image(gc, 0, 0, width, height, Gdk::RGB_DITHER_MAX,                              pf->buf, 3 * width);     }     }void tr_drawing_area::draw_selected_chars() {     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> gc = Gdk::GC::create(win);     Glib::RefPtr<Gdk::GC> text_gc = get_style()->get_white_gc();     gc->set_line_attributes(2, Gdk::LINE_SOLID, Gdk::CAP_ROUND,                             Gdk::JOIN_ROUND);          Glib::RefPtr<Pango::Layout> layout = create_pango_layout("");     Pango::FontDescription fd;     fd.set_weight(Pango::WEIGHT_HEAVY);     layout->set_font_description(fd);     layout->set_width(15);     layout->set_alignment(Pango::ALIGN_CENTER);          Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color orange;         orange.set_red(61423);     orange.set_green(45232);     orange.set_blue(2827);     colormap->alloc_color(orange);     gc->set_foreground(orange);     parsed_char *cur_pc;     for(int i = 0; i < selected_chars->size(); i++) {          cur_pc = (*selected_chars)[i].pc;          win->draw_rectangle(gc, 0, cur_pc->self_node.self_box.xy.x,                              cur_pc->self_node.self_box.xy.y,                               cur_pc->self_node.self_box.horiz_len,                              cur_pc->self_node.self_box.vert_len);                         // set letter at the corner of the box:          win->draw_rectangle(gc, true, cur_pc->self_node.self_box.xy.x,                              cur_pc->self_node.self_box.xy.y, 15, 15);          layout->set_text(cur_pc->self_node.character);          win->draw_layout(text_gc, cur_pc->self_node.self_box.xy.x + 7,                           cur_pc->self_node.self_box.xy.y - 2, layout);     }}void tr_drawing_area::draw_lines() {     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> blue_gc = Gdk::GC::create(win);     blue_gc->set_line_attributes(2, Gdk::LINE_SOLID, Gdk::CAP_ROUND,                                   Gdk::JOIN_ROUND);     Glib::RefPtr<Gdk::GC> selected_blue_gc = Gdk::GC::create(win);     selected_blue_gc->set_line_attributes(TR_DA_SELECTED_LINE_THICKNESS,                                            Gdk::LINE_SOLID, Gdk::CAP_ROUND,                                           Gdk::JOIN_ROUND);     Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color blue;     blue.set_red(0);     blue.set_green(0);     blue.set_blue(65535);     colormap->alloc_color(blue);     blue_gc->set_foreground(blue);     selected_blue_gc->set_foreground(blue);          for(int i = 0; i < lines.size(); i++) {          if((i == selected_line_index0) || (i == selected_line_index1))               win->draw_line(selected_blue_gc, 0, lines[i], pf->width - 2,                               lines[i]);          else               win->draw_line(blue_gc, 0, lines[i], pf->width - 2, lines[i]);     }}         void tr_drawing_area::draw_spint_lines() {     if((selected_line_index0 == -1) || (selected_line_index1 == -1))          return;          Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> magenta_gc = Gdk::GC::create(win);     magenta_gc->set_line_attributes(2, Gdk::LINE_SOLID, Gdk::CAP_ROUND,                                   Gdk::JOIN_ROUND);     Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color magenta;     magenta.set_red(63744);     magenta.set_green(10752);     magenta.set_blue(50688);     colormap->alloc_color(magenta);     magenta_gc->set_foreground(magenta);     int upper_index, lower_index;     if(lines[selected_line_index0] < lines[selected_line_index]) {          upper_index = selected_line_index0;          lower_index = selected_line_index1;     }     else {          upper_index = selected_line_index1;          lower_index = selected_line_index0;     }          for(int i = 0; i < spint_lines.size(); i++)          win->draw_line(magenta_gc, spint_lines[i], lines[upper_index],                         spint_lines[i], lines[lower_index]);}void tr_drawing_area::draw_split_chars_lines() {     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> red_gc = Gdk::GC::create(win);     red_gc->set_line_attributes(2, Gdk::LINE_ON_OFF_DASH, Gdk::CAP_ROUND,                                   Gdk::JOIN_ROUND);     Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color red;     red.set_red(65535);     red.set_green(0);     red.set_blue(0);     colormap->alloc_color(red);     red_gc->set_foreground(red);     box_t char_box;     int pos_x;     for(int i = 0; i < tool_split_chars_divider_pos->size(); i++) {          char_box = (*selected_chars)[i].pc->self_node.self_box;          pos_x = (*tool_split_chars_divider_pos)[i];          win->draw_line(red_gc, pos_x, char_box.xy.y, pos_x,                          char_box.xy.y + char_box.vert_len - 1);     }}bool tr_drawing_area::click_on_line(int line_index, int y) {     if((line_index == selected_line_index0) ||         (line_index == selected_line_index1)) {          if((y >= lines[line_index]) &&              (y <= lines[line_index] + (TR_DA_SELECTED_LINE_THICKNESS - 1)))               return true;          else               return false;     }     else {               if((y == lines[line_index]) || (y == (lines[line_index] + 1)))               return true;          else               return false;     }}int tr_drawing_area::click_on_line(int y) {     for(int i = 0; i < lines.size(); i++) {          if(click_on_line(i, y))               return i;     }     return -1;}bool tr_drawing_area::click_on_spint_line(int line_index, int x, int y) {     if((selected_line_index0 == -1) || (selected_line_index1 == -1))          return false;          int upper_index, lower_index;     if(lines[selected_line_index0] < lines[selected_line_index1]) {          upper_index = selected_line_index0;          lower_index = selected_line_index1;     }     else {          upper_index = selected_line_index1;          lower_index = selected_line_index0;     }          if(((x == spint_lines[line_index]) || (x == spint_lines[line_index] + 1)) &&         (y >= lines[upper_index]) && (y <= lines[lower_index]))          return true;     else           return false;}int tr_drawing_area::click_on_spint_line(int x, int y) {    for(int i = 0; i < spint_lines.size(); i++) {         if(click_on_spint_line(i, x, y))              return i;    }    return -1;}int tr_drawing_area::split_chars_click_on_line(int x, int y) {     box_t char_box;     for(int i = 0; i < selected_chars->size(); i++) {          char_box = (*selected_chars)[i].pc->self_node.self_box;          if((char_box.xy.y <= y) && ((char_box.xy.y + char_box.horiz_len - 1)              >= y) && (char_box.xy.x <= x) &&              ((char_box.xy.x + char_box.vert_len) >= x))               return i;     }     return -1;}/////// image display:tr_image_display::tr_image_display() : da(pf->width, pf->height) {     set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);     set_size_request(TR_SWIN_X_SIZE, TR_SWIN_Y_SIZE);     set_border_width(0);     add(da);          get_hadjustment()->signal_value_changed().connect(sigc::mem_fun(*this,                                       &tr_image_display::on_scrollbar_adjust));     get_vadjustment()->signal_value_changed().connect(sigc::mem_fun(*this,                                      &tr_image_display::on_scrollbar_adjust));          show_all_children();}void tr_image_display::da_add_line(int line) {     da.add_line(line);}void tr_image_display::da_delete_line() {     da.delete_line();}vector<int> tr_image_display::da_get_lines() {     return da.get_lines();}bool tr_image_display::da_add_spint_line(int line) {     return da.add_spint_line(line);}bool tr_image_display::da_delete_spint_line() {     return da.delete_spint_line();}vector<int> tr_image_display::da_get_spint_lines() {     return da.get_spint_lines();}void tr_image_display::da_select_lines() {     da.select_lines();}void tr_image_display::da_clear_select_lines() {     da.clear_select_lines();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成影院在线观看| 精品少妇一区二区三区免费观看| 综合久久久久综合| 在线一区二区观看| 亚洲成人午夜电影| 欧美电影免费观看高清完整版在线 | 亚洲国产日韩综合久久精品| 91福利国产成人精品照片| 亚洲国产精品久久久久秋霞影院| 欧美另类高清zo欧美| 久久精品国产久精国产| 国产日韩欧美精品一区| 色综合天天综合网国产成人综合天 | 精品国产乱码久久久久久蜜臀| 国产专区综合网| 中文字幕在线观看不卡| 色综合久久六月婷婷中文字幕| 亚洲成人777| 国产午夜精品一区二区三区视频| 成人激情免费视频| 婷婷综合久久一区二区三区| 欧美电视剧在线看免费| 成人av在线影院| 日本不卡在线视频| 日本一区二区三区在线观看| 色悠久久久久综合欧美99| 男女激情视频一区| 国产精品福利一区| 欧美一级片在线看| 色综合天天综合网天天看片| 日本亚洲视频在线| 亚洲欧洲成人自拍| 欧美精品一区二区三区很污很色的| 高潮精品一区videoshd| 亚洲五月六月丁香激情| 久久久91精品国产一区二区精品| 欧美视频一区二区在线观看| 国产一区二区不卡在线| 亚洲国产精品久久久男人的天堂 | 亚洲综合色在线| 欧美不卡视频一区| 色美美综合视频| 国产专区欧美精品| 亚洲h在线观看| √…a在线天堂一区| 337p粉嫩大胆色噜噜噜噜亚洲| 色婷婷综合视频在线观看| 国产一区二区在线免费观看| 亚洲国产精品视频| 亚洲精品中文字幕乱码三区| 欧美成人精品3d动漫h| 欧美日韩在线观看一区二区 | 91国偷自产一区二区使用方法| 国产在线一区二区综合免费视频| 一区二区三区在线观看欧美| 久久精品无码一区二区三区| 日韩一区二区在线播放| 欧美在线高清视频| 一本色道亚洲精品aⅴ| 福利电影一区二区三区| 国产久卡久卡久卡久卡视频精品| 亚洲成人福利片| 一区av在线播放| 亚洲美女视频一区| 一区二区三区在线免费播放| 国产精品久久久久久久久快鸭| 久久精品日韩一区二区三区| 日韩久久免费av| 精品乱人伦一区二区三区| 欧美一区二区视频在线观看| 欧美日韩亚州综合| 91精品免费在线观看| 欧美日韩国产免费一区二区 | 欧美精品一卡二卡| 欧美日韩一级二级三级| 欧美亚洲国产一区二区三区 | 一区二区高清在线| 亚洲国产精品一区二区久久 | 青娱乐精品在线视频| 日韩高清一区二区| 青青草精品视频| 久久国产精品免费| 国产伦精品一区二区三区免费迷 | 综合激情成人伊人| 亚洲天堂a在线| 亚洲与欧洲av电影| 午夜天堂影视香蕉久久| 日韩中文字幕1| 免费观看一级特黄欧美大片| 美女精品一区二区| 丁香激情综合国产| 色婷婷一区二区| 91精品国产色综合久久ai换脸| 日韩一区和二区| 久久人人超碰精品| 中文字幕一区二区三区在线播放 | 欧美一级理论性理论a| 欧美一区二区二区| 国产欧美一区二区在线观看| 国产精品人成在线观看免费| 亚洲自拍偷拍麻豆| 麻豆一区二区在线| 成人av小说网| 欧美日韩国产乱码电影| 欧美精品一区二区蜜臀亚洲| 国产精品女主播在线观看| 亚洲综合999| 久久99精品一区二区三区三区| 丰满少妇久久久久久久| 一本到一区二区三区| 欧美日韩电影在线| 日本一区二区电影| 五月天中文字幕一区二区| 久久精品av麻豆的观看方式| 成人国产精品免费观看动漫| 欧美日韩国产免费一区二区| 久久精品欧美日韩| 亚洲午夜久久久久久久久电影网| 另类人妖一区二区av| 91原创在线视频| 欧美成人video| 亚洲午夜久久久久久久久电影网 | 国产精品拍天天在线| 偷拍日韩校园综合在线| 国产a级毛片一区| 欧美高清视频不卡网| 国产精品网曝门| 热久久国产精品| 色成人在线视频| 国产亚洲成av人在线观看导航| 亚洲成人你懂的| 成人v精品蜜桃久久一区| 日韩精品中午字幕| 亚洲色图欧美在线| 韩国v欧美v亚洲v日本v| 欧美日韩一区二区三区不卡 | 一区二区三区欧美在线观看| 伦理电影国产精品| 欧美日韩一级视频| 亚洲色图制服诱惑| 成人18视频在线播放| 精品国产91洋老外米糕| 婷婷六月综合网| 在线视频欧美区| 中文字幕中文字幕一区二区| 国内精品自线一区二区三区视频| 欧美日韩精品二区第二页| 日韩一区有码在线| 成人在线视频一区二区| 久久久影视传媒| 毛片av一区二区| 日韩午夜在线观看| 日韩在线卡一卡二| 欧美高清www午色夜在线视频| 亚洲影视在线观看| 色天使色偷偷av一区二区 | 一区二区三区四区五区视频在线观看 | 亚洲va在线va天堂| 欧美性猛片aaaaaaa做受| 亚洲人成7777| 色拍拍在线精品视频8848| 国产精品久久毛片| 成人高清免费观看| 国产精品污污网站在线观看| 成人美女视频在线观看| 国产精品理论片| 91丨porny丨首页| 亚洲丝袜制服诱惑| 在线观看视频91| 午夜精品福利一区二区蜜股av| 欧美体内she精视频| 亚洲一级不卡视频| 在线观看91精品国产麻豆| 丝袜亚洲精品中文字幕一区| 欧美一级黄色大片| 精彩视频一区二区三区| 国产午夜亚洲精品不卡| 波多野结衣亚洲| 亚洲天堂精品在线观看| 欧美色图片你懂的| 麻豆精品一二三| 国产午夜精品在线观看| 99热99精品| 亚洲无线码一区二区三区| 欧美一区二区三区性视频| 久久99精品国产麻豆婷婷| 久久久国际精品| 色综合欧美在线| 奇米精品一区二区三区在线观看一| 欧美一区二区三区四区久久 | 亚洲精品午夜久久久| 欧美色综合影院| 精品一区二区在线免费观看| 国产女人aaa级久久久级| 91麻豆精东视频| 日韩黄色一级片| 国产欧美日韩综合精品一区二区| 色婷婷久久久亚洲一区二区三区 | 成人激情免费电影网址| 亚洲一区二区视频在线|