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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? voids.c

?? NIST Handwriting OCR Testbed
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*# proc: unerase_short_voids_ml - refills short voids between character pices based on one# proc:               of the pieces abutting to the void with a slice width "close" to# proc:               the locally dynamic median line width.# proc: unerase_curved_voids_ml - refills voids based on the intersection of slope# proc:                trajectories using a vector of locally dynamic median line widths.# proc: join_nbrs_on_top - refills voids based on the intersection of slope trajectories# proc:                    measured from 2 nbring character pieces sitting on top the line.# proc: join_nbrs_below - refills voids based on the intersection of slope trajectories# proc:                   measured from 2 nbring character pieces touching along the bottom# proc:                   of the line.# proc: right_vert_clear - checks if right edge is vertically clear of character data above# proc:                    and below.# proc: left_vert_clear - checks if left edge is vertically clear of character data above# proc:                   and below.# proc: top_left_hori_clear - checks if top-left edge is horizontally clear of character data.# proc:# proc: top_right_hori_clear - checks if top-right edge is horizontally clear of# proc:                        character data.# proc:# proc: bottom_left_hori_clear - checks if bot-left edge is horizontally clear of# proc:                          character data.# proc: bottom_right_hori_clear - checks if bot-right edge is horizontally clear of# proc:                          character data.*/#include <stdio.h>#include <values.h>#include <defs.h>#include <rmline.h>#include <mytrace.h>/***************************************************************************//* unserase_short_voids - refills short voids between character pieces     *//* based on one of the pieces abutting to the void with a slice width      *//* "close" to the median line width. This routine is useful to join left   *//* and right pices of horizontal stokes separated by a short void where    *//* the original stroke overlapped close enough with the line to be         *//* partially erased.                                                       *//***************************************************************************//***************************************************************************/unerase_short_voids_ml(ebin, msws, sw, fsy, tsy, nsw, cdata, w, h)int *ebin, *msws, *sw, *fsy, *tsy, nsw;unsigned char *cdata;int w, h;{   int i, rs, re, nextbin;   int limit, rlen;   my_trace("entered unerase_short_voids_ml\n");   nextbin = 0;   while(next_n_run(ERASED, &rs, &re, nextbin, ebin, nsw)){      limit = max(MIN_SHORT_VOID, sround(SHORT_VOID_FCTR*msws[rs]));      my_trace2("next void from %d to %d\n", rs, re);      if((rs > 0) && (re < nsw-1)){         rlen = re - rs + 1;         /* if void is short enough ... */         if(rlen < limit){            /* test nbring character pieces */            if((sw[rs-1] <= msws[rs]+SMALL_NOISE) ||               (sw[re+1] <= msws[re]+SMALL_NOISE)){               my_trace("unerase void\n");               for(i = rs; i <= re; i++){                  if(sw[i] != 0)                     draw_slice_hori(1, i, fsy[i], tsy[i], cdata, w, h);                  ebin[i] = UNERASED;               }            }         }      }      nextbin = re+1;   }   my_trace("finished unerase_short_voids_ml\n");}/***************************************************************************//* unerase_curved_voids - refills erased voids based on the intersection   *//* of slope trajectories measured from two neighboring character pieces.   *//* This routine is useful to join left and right pieces of curvatures,     *//* such as a hole in the top or bottom of a zero.                          *//***************************************************************************//***************************************************************************/unerase_curved_voids_ml(ebin, msws, sw, fsy, tsy, nsw, cdata, w, h)int *ebin, *msws, *sw, *fsy, *tsy, nsw;unsigned char *cdata;int w, h;{   int nextbin;   int lrs, lre, rrs, rre;   float lm, rm;   float slope_left_above(), slope_right_above();   float slope_left_below(), slope_right_below();   int slimit, x, max_x;   my_trace("entered unerase_curved_voids_ml\n");   max_x = w-1;   nextbin = 0;   /* slices not erased to this point are assumed to be pieces of characters */   /* find the left character piece */   if(next_n_run(0, &lrs, &lre, nextbin, ebin, nsw)){      slimit = step_limit(msws[lre]);      nextbin = lre+1;      /* find the next right character piece ... */      while(next_n_run(0, &rrs, &rre, nextbin, ebin, nsw)){         nextbin = rre+1;         my_trace2("left char piece from %d to %d\n", lrs, lre);         my_trace2("right char piece from %d to %d\n", rrs, rre);         /* check if left and right edges of the void are vertically clear - */         /* we are looking for places severed completely through a horizontal */         /* stroke at the top or the bottom of a potentially curved character */         if((right_vert_clear(lrs,lre,fsy,tsy,msws[lre],nsw,cdata,w,h)) &&            (left_vert_clear(rrs,rre,fsy,tsy,msws[rrs],nsw,cdata,w,h))){            my_trace("void has vertically clear edges\n");            /* is only character data potentially touching the top of the line? */            if((bottom_right_hori_clear(lrs, lre, fsy, tsy,msws[lre],nsw, cdata, w, h)) &&               (bottom_left_hori_clear(rrs, rre, fsy, tsy,msws[rrs],nsw, cdata, w, h))){               my_trace("character data maybe touching top of line\n");               /* get slope from left char piece's right edge */               x = min(lre+1, max_x);               lm = slope_right_above(x, fsy[x], slimit, RUN_DYS, cdata, w, h);               my_trace1("left nbr slope = %f\n", lm);               /* get slope from right char piece's left edge */               x = max(0, rrs-1);               rm = slope_left_above(x, fsy[x], slimit, RUN_DYS, cdata, w, h);               my_trace1("right nbr slope = %f\n", rm);               /* test to join nboring char pieces based on intersection of slopes */               join_nbrs_on_top(lm, lrs, lre, rm, rrs, rre, fsy, tsy, ebin, sw, nsw,                                msws[lre], cdata, w, h);            /* is only character data potentially touching the bottom of the line? */            }else if((top_right_hori_clear(lrs,lre,fsy,tsy,msws[lre],nsw,cdata,w,h)) &&               (top_left_hori_clear(rrs, rre, fsy, tsy, msws[rrs], nsw, cdata, w, h))){               my_trace("character data maybe touching bottom of line\n");               /* get slope from left char piece's right edge */               x = min(lre+1, max_x);               lm = slope_right_below(x, tsy[x], slimit, RUN_DYS, cdata, w, h);               my_trace1("left nbr slope = %f\n", lm);               /* get slope from right char piece's left edge */               x = max(0, rrs-1);               rm = slope_left_below(x, tsy[x], slimit, RUN_DYS, cdata, w, h);               my_trace1("right nbr slope = %f\n", rm);               /* test to join nboring char pieces based on intersection of slopes */               join_nbrs_below(lm, lrs, lre, rm, rrs, rre, fsy, tsy, ebin, sw, nsw,                               msws[lre], cdata, w, h);            }         }         /* right char piece becomes left char piece */         lrs = rrs;         lre = rre;      }   }   my_trace("finished unerase_curved_voids_ml\n");}/***************************************************************************//* join_nbrs_on_top - refills erased voids based on the intersection of    *//* slope trajectories measured from two neighboring character pieces       *//* sitting on top of the line.                                             *//***************************************************************************/join_nbrs_on_top(lm, lrs, lre, rm, rrs, rre, fsy, tsy, ebin, sw, nsw, msw, cdata, w, h)float lm, rm;int lrs, lre, rrs, rre;int *fsy, *tsy, *ebin, *sw, nsw, msw;unsigned char *cdata;int w, h;{   int i, ix, iy, ty, by;   int lx, rx, limit;   my_trace("entered join_nbrs_on_top\n");   /* form the bounding box within which intersections will be accepted */   lx = min(lre+1, nsw-1);   rx = max(0, rrs-1);   my_trace2("void from %d to %d\n", lx, rx);   ty = min(fsy[lx], fsy[rx]);   by = max(tsy[lx], tsy[rx]);   /* set a limit on the length of the void to avoid rediculous unerasures */   limit = max(MIN_CURVE_VOID, sround(CURVE_VOID_FCTR*msw));   /* to be compatible: */   /* the left nbr slope must be positive and right nbr slope must be negative */   if((lm >= 0) && ((rm == MAXFLOAT) || (rm <= 0)) &&      /* to account for annomalies in the measured slopes: */      /* one side is not permitted to be "perfectly" vertical with the other */      /* side "perfectly" horizontal */      ((lm != MAXFLOAT) || (rm != 0.0)) &&      ((rm != MAXFLOAT) || (lm != 0.0)) &&      /* the length of the void must not exceed the limit */      ((rx - lx + 1) < limit) &&      /* an intersection between the two slopes must exist (ie. slopes not parallel) */      (pt_intersect(&ix, &iy, lx, fsy[lx], lm, rx, fsy[rx], rm))){      my_trace3("left line: pt = (%d, %d) slope = %f\n", lx, fsy[lx], lm);      my_trace3("right line: pt = (%d, %d) slope = %f\n", rx, fsy[rx], rm);      my_trace2("intersection at (%d, %d)\n", ix, iy);      /* if intersection point is within the rectangular region of acceptance ... */      if((is_in_range(ix, lx, rx) && (is_in_range(iy, ty, by)))){         /* unerase the void */         my_trace("unerase void\n");         for(i = lx; i <= rx; i++){            if(sw[i] != 0)               draw_slice_hori(1, i, fsy[i], tsy[i], cdata, w, h);            ebin[i] = UNERASED;         }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费播放| 欧美性受极品xxxx喷水| 欧美人动与zoxxxx乱| 国产欧美久久久精品影院| 日韩精品一卡二卡三卡四卡无卡| 99久久综合精品| 久久精品欧美一区二区三区麻豆| 一区二区三区鲁丝不卡| 国产精品99精品久久免费| 欧美精品成人一区二区三区四区| 亚洲欧洲精品一区二区三区 | 777欧美精品| 亚洲免费观看高清完整版在线观看 | 一区二区三区在线高清| 国产精品系列在线观看| 4438x成人网最大色成网站| 亚洲免费观看高清| 丁香激情综合国产| 久久一留热品黄| 免费成人在线网站| 欧美挠脚心视频网站| 亚洲最新在线观看| 99精品久久免费看蜜臀剧情介绍 | 91国产福利在线| 国产精品剧情在线亚洲| 国产福利精品一区| 精品捆绑美女sm三区| 日韩av中文在线观看| 欧美日韩精品一区二区三区| 亚洲女爱视频在线| 91亚洲国产成人精品一区二区三| 国产日韩精品一区二区三区在线| 激情综合网激情| 日韩久久久久久| 久久国内精品自在自线400部| 欧美一区二区三区小说| 午夜免费久久看| 欧美狂野另类xxxxoooo| 亚洲成人av在线电影| 欧美三日本三级三级在线播放| 自拍视频在线观看一区二区| 成人黄色小视频| 中文字幕欧美区| 波波电影院一区二区三区| 亚洲国产精品黑人久久久| 丁香啪啪综合成人亚洲小说| 国产欧美日韩精品在线| 成人av手机在线观看| 中文字幕亚洲一区二区av在线| 国产91丝袜在线播放0| 国产欧美一区二区精品婷婷| 成人免费毛片片v| 国产精品久久久久婷婷| 色综合久久99| 亚洲成人免费视| 91精品国产一区二区| 蜜桃av一区二区在线观看| 欧美大度的电影原声| 极品少妇xxxx偷拍精品少妇| 久久亚洲精华国产精华液 | 国产原创一区二区三区| 久久久国产精品午夜一区ai换脸| 国产91色综合久久免费分享| 国产精品麻豆视频| 91精品视频网| 国产九九视频一区二区三区| 中文字幕欧美区| 欧美中文字幕一二三区视频| 日韩精品一级二级| 2024国产精品视频| 成人app软件下载大全免费| 国产精品不卡一区| 欧美午夜理伦三级在线观看| 日本中文字幕一区二区有限公司| 精品精品国产高清一毛片一天堂| 黄网站免费久久| 亚洲国产高清aⅴ视频| 色综合天天天天做夜夜夜夜做| 午夜欧美在线一二页| 精品成人免费观看| 91免费在线看| 麻豆精品在线观看| 国产精品沙发午睡系列990531| 在线影院国内精品| 狠狠色丁香久久婷婷综合丁香| 国产精品国产三级国产有无不卡| 欧美日韩精品一二三区| 国产乱对白刺激视频不卡| 尤物av一区二区| 2021国产精品久久精品| 91老师片黄在线观看| 99麻豆久久久国产精品免费 | 婷婷夜色潮精品综合在线| 久久亚洲一区二区三区明星换脸 | 国产精品99久久久| 亚洲一线二线三线视频| 欧美精品一区二区精品网| 91在线视频在线| 九色|91porny| 亚洲综合色婷婷| 久久精品欧美日韩| 欧美日韩一区高清| 国产69精品久久久久毛片 | 亚洲柠檬福利资源导航| 精品日韩在线观看| 欧洲一区二区三区在线| 国精产品一区一区三区mba视频| 亚洲精品视频在线观看免费 | 欧美三区在线观看| 懂色av一区二区夜夜嗨| 日本欧美肥老太交大片| 亚洲视频小说图片| 久久午夜老司机| 正在播放亚洲一区| 一本一本大道香蕉久在线精品| 韩国av一区二区三区四区 | 日韩理论电影院| 久久久综合视频| 91精品久久久久久久99蜜桃 | 国产大陆亚洲精品国产| 亚洲成人一区二区在线观看| 国产精品电影一区二区三区| 日韩免费视频一区| 欧美群妇大交群中文字幕| 91性感美女视频| 成人免费高清在线观看| 国产一区在线观看麻豆| 日日嗨av一区二区三区四区| 亚洲欧美日韩在线| 国产精品久久久久久久久晋中| 2020日本不卡一区二区视频| 日韩一区二区在线观看视频播放| 在线精品国精品国产尤物884a| 99视频精品免费视频| 国产suv精品一区二区883| 精品一区二区三区免费| 青青草91视频| 日韩精品成人一区二区在线| 亚洲一区二区三区不卡国产欧美| 国产精品久久精品日日| 久久精品日产第一区二区三区高清版| 欧美一级欧美三级| 91精品久久久久久久久99蜜臂| 欧洲精品一区二区| 色系网站成人免费| 91亚洲永久精品| www.66久久| 国产成人免费视频网站高清观看视频| 久久草av在线| 麻豆成人久久精品二区三区小说| 日韩电影一区二区三区四区| 亚洲国产aⅴ成人精品无吗| 亚洲免费av观看| 亚洲影院久久精品| 亚洲丶国产丶欧美一区二区三区| 亚洲一区二区视频| 亚洲福利一区二区| 性做久久久久久免费观看| 亚洲成人精品影院| 天天av天天翘天天综合网 | 亚洲电影欧美电影有声小说| 亚洲国产成人av| 视频一区免费在线观看| 日本特黄久久久高潮| 麻豆精品在线看| 国产一区二区精品在线观看| 国产一区二区在线看| 国产成人免费视| 99re热视频这里只精品| 色综合久久久久久久久| 欧美午夜在线观看| 欧美高清视频一二三区 | 欧美亚洲高清一区| 精品视频在线免费看| 欧美精品日日鲁夜夜添| 欧美一区二区三区免费在线看| 日韩无一区二区| 久久无码av三级| 国产精品传媒入口麻豆| 亚洲精品乱码久久久久久久久| 亚洲国产日韩一级| 日韩电影在线一区二区三区| 久久精品久久精品| 国产高清成人在线| 91欧美激情一区二区三区成人| 欧美日韩中文字幕一区| 欧美一级搡bbbb搡bbbb| 国产日韩精品一区| 亚洲精品v日韩精品| 无码av免费一区二区三区试看 | 成人精品免费看| 国产日韩视频一区二区三区| 国产精品午夜在线观看| 亚洲私人影院在线观看| 日韩丝袜美女视频| 国产精品久久久久国产精品日日 | 精品国产欧美一区二区| 国产精品美女一区二区| 亚洲一区二区三区小说| 狠狠色丁香久久婷婷综|