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

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

?? dot.c

?? NIST Handwriting OCR Testbed
?? C
字號:
/*# proc: is_dot_blob - determines if blob is small enough to be a dot based on the# proc:               estimated stroke width.# proc: process_dot_blobs - reconnects dots to i's and j's and other larger blobs that are# proc:               sufficiently close.# proc: left_closer_to_dot - given two nbring blobs, determines which is closer.# proc:# proc: reconnect_dot - determines if nbring blob is below, close, and in line with the# proc:                 dot blob.# proc: dist_dot2blob - computes the perpendicular distance from the blob to the linear# proc:                 projection from a nbring blob.# proc: count_nondots_blob - counts the number of non-dots (blobs larger than a dot) in a# proc:                 specified blob image.*/#include <stdio.h>#include <math.h>#include <blobls.h>#include <segchars.h>#include <defs.h>/************************************************************/is_dot_blob(blob, esw)BLOB *blob;int esw;{   static int dot_x1_thresh, dot_y1_thresh;   static int oesw = -1;   if(esw != oesw){      dot_x1_thresh = max(1, sround(esw * DOT_X_FCTR));      dot_y1_thresh = max(1, sround(esw * DOT_Y_FCTR));      oesw = esw;   }   if((blob->w < dot_x1_thresh) &&      (blob->h < dot_y1_thresh))      return(TRUE);   else      return(FALSE);}/************************************************************/process_dot_blobs(esw, eh, dots, blobls)int esw, eh;BLOBLS *dots, *blobls;{   int di, bi, li, ri, nnbrs;   BLOB *dptr, *lptr, *rptr;   int a1, a2;   /* Warning: blobls should already be sorted left to right */   /* if no original blobs, then done */   if(blobls->num == 0)      return;   di = dots->num - 1;   while(di >= 0){      dptr = dots->blobs[di];      /* if dot-sized blob is inside another blob, then merge */      if((bi = find_first_blob_inside(dptr, blobls)) != NOT_FOUND){         /* merge dot with blob it is inside */         merge_among_blobls(dots, di, blobls, bi);      }      /* check the nbrs of the dot */      else{         /* locate dot's left and right nbring blobs */         find_blob_nbrs(&li, &ri, &nnbrs, dptr, blobls);         /* if only 1 nbring blob found ... */         if(nnbrs == 1){            lptr = blobls->blobs[li];            /* dot must be above, close, and in line with nbr */            if(reconnect_dot(dptr, lptr, esw, DOT_DIST)){               /* merge dot with its nbr */               merge_among_blobls(dots, di, blobls, li);            }            /* dot might be top of a 5 for nbr */            else if(is_top_of_5(lptr, dptr, esw, eh)){               merge_among_blobls(dots, di, blobls, li);            }            /* otherwise not a dot */         }         /* otherwise two nbrs */         else{            lptr = blobls->blobs[li];            rptr = blobls->blobs[ri];            a1 = reconnect_dot(dptr, lptr, esw, DOT_DIST);            a2 = reconnect_dot(dptr, rptr, esw, DOT_DIST);            /* if could reconnect dot to both nbrs */            if(a1 && a2){               /* choose blob closer to dot */               if(left_closer_to_dot(dptr, lptr, rptr)){                  /* merge dot with left nbr */                  merge_among_blobls(dots, di, blobls, li);               }               else{                  /* merge dot with right nbr */                  merge_among_blobls(dots, di, blobls, ri);               }            }            else if (a1){               /* merge dot with left nbr */               merge_among_blobls(dots, di, blobls, li);            }            else if (a2){               /* merge dot with right nbr */               merge_among_blobls(dots, di, blobls, ri);            }            /* dot might be top of a 5 for nbr */            else if(is_top_of_5(lptr, dptr, esw, eh)){               merge_among_blobls(dots, di, blobls, li);            }         }         /* otherwise not a dot */      } /* end nbr checking */      di--;   } /* end while */}/************************************************************/left_closer_to_dot(dot, lblob, rblob)BLOB *dot, *lblob, *rblob;{   float ld, rd, distance();   /* distance between dot's bottom cx and blobs top cx */   ld = distance((float)lblob->cx, (float)lblob->y1, (float)dot->cx, (float)dot->cy);   rd = distance((float)rblob->cx, (float)rblob->y1, (float)dot->cx, (float)dot->cy);   if(ld <= rd)      return(TRUE);   else      return(FALSE);}/************************************************************/reconnect_dot(dot, blob, esw, thresh)BLOB *dot, *blob;int esw;float thresh;{   float d, dist_dot2blob();   /* if dot is not above, then not a dot */   if(!is_blob_above(dot, blob))      return(FALSE);   /* compute nbr distance */   d = dist_dot2blob(dot, blob);   /* normalize distance on estimated line width */   d /= (float)esw;   if(d < thresh)      return(TRUE);   else      return(FALSE);}/************************************************************/float dist_dot2blob(dot, blob)BLOB *dot, *blob;{   int x1, y1, x2, y2, ly;   float m, d, perp_dist();   y1 = blob->y1;   ly = blob->h - 1;   y2 = y1 + ly;   if(((x1 = left_pix(blob->data, blob->w)) != NOT_FOUND) &&      ((x2 = left_pix(blob->data+(ly*blob->w), blob->w)) != NOT_FOUND)){      /* if vertical slope */      x1 += blob->x1;      x2 += blob->x1;      if(x1 == x2){         d = (float)(dot->cx - x1);         return(fabs(d));      }      else{         m = (y2 - y1)/(float)(x2 - x1);         d = perp_dist((float)dot->cx, (float)dot->cy, (float)x1, (float)y1, (float)m);         return(d);      }   }   else      fatalerr("dist_dot2blob",               "black pixel not found in either top or bottom row of blob",               NULL);}/************************************************************/count_nondots_blob(blob, esw)BLOB *blob;int esw;{   int i, tot;   unsigned char *tdata, *imagedup();   BLOBLS *tblobls;   static int flags = BLOB_XY1S | BLOB_WHS;   tdata = imagedup(blob->data, blob->w, blob->h, 8);   segblobs8(&tblobls, flags, tdata, blob->w, blob->h);   free(tdata);   tot = 0;   for(i = 0; i < tblobls->num; i++){      /* if a dot or smaller, then ignore */      if(!is_dot_blob(tblobls->blobs[i], esw))         tot++;   }   free_blobls(tblobls);   return(tot);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re成人精品视频| 国产精品美女一区二区三区| 日韩免费高清视频| 一区二区三区在线影院| 精品中文字幕一区二区小辣椒| 成人国产精品免费观看视频| 日韩欧美一卡二卡| 一区二区不卡在线播放 | 成人动漫av在线| 精品乱码亚洲一区二区不卡| 一区二区三区中文免费| 成人在线视频一区| 精品国产乱码久久久久久图片| 亚洲综合久久久久| 不卡在线观看av| 欧美激情综合五月色丁香小说| 久久综合综合久久综合| 欧美日韩你懂得| 亚洲人成网站精品片在线观看| 国产精品99久久久久久似苏梦涵| 日韩欧美电影一区| 美女性感视频久久| 6080国产精品一区二区| 亚洲国产cao| 精品视频1区2区3区| 亚洲亚洲精品在线观看| 色综合咪咪久久| 亚洲免费观看在线视频| 99精品视频一区| 一区二区在线免费| 在线视频一区二区免费| 亚洲午夜影视影院在线观看| 91网页版在线| 亚洲一区二区三区中文字幕| 91蜜桃视频在线| 一区二区三区欧美日| 色综合久久综合中文综合网| 亚洲欧美一区二区三区国产精品| 91丨porny丨国产入口| 日韩美女视频一区二区| 色av成人天堂桃色av| 亚洲永久免费av| 91精品国产综合久久久久久久 | 免费看欧美女人艹b| 日韩欧美黄色影院| 国产精品系列在线播放| 成人欧美一区二区三区| 一本大道久久a久久综合婷婷| 亚洲综合小说图片| 欧美精品久久一区二区三区| 久久国产免费看| 国产亲近乱来精品视频| 色综合夜色一区| 日韩高清在线不卡| 国产亚洲欧美激情| 成人国产精品免费| 午夜伦欧美伦电影理论片| 精品人在线二区三区| 成人精品国产福利| 亚洲大片免费看| 国产欧美日韩亚州综合 | 日韩欧美123| 成人激情免费网站| 天天av天天翘天天综合网色鬼国产| 日韩精品一区二区三区在线| 国产a区久久久| 视频一区二区国产| 国产精品久久一级| 日韩精品在线一区| 色综合久久久久网| 国产在线观看免费一区| 亚洲精品国产高清久久伦理二区| 日韩一区二区免费电影| 91视频com| 国产呦精品一区二区三区网站| 一区二区三区在线视频免费| 26uuu成人网一区二区三区| 欧美伊人久久大香线蕉综合69| 国产综合久久久久影院| 亚洲一区二区三区美女| 国产精品国产馆在线真实露脸| 91精品国产综合久久精品麻豆| 成人中文字幕合集| 久草热8精品视频在线观看| 亚洲一区二区三区精品在线| 国产欧美精品在线观看| 欧美高清性hdvideosex| 色综合久久中文字幕综合网| 国产91精品入口| 六月丁香婷婷久久| 三级久久三级久久| 樱桃视频在线观看一区| 国产欧美一区二区三区沐欲| 正在播放一区二区| 欧美日韩久久一区| 日本高清免费不卡视频| www.欧美日韩| 99在线精品视频| 丰满亚洲少妇av| 国产成人在线看| 国产剧情av麻豆香蕉精品| 免费成人在线影院| 美女国产一区二区三区| 婷婷国产在线综合| 亚洲一区二区美女| 亚洲线精品一区二区三区| 一区二区三区自拍| 亚洲一区在线观看网站| 亚洲一区二区三区四区不卡| 中文字幕一区二| 亚洲精选在线视频| 一区二区三区久久| 亚洲一区二区五区| 午夜电影一区二区| 午夜影视日本亚洲欧洲精品| 亚洲五码中文字幕| 免费在线视频一区| 极品销魂美女一区二区三区| 老司机免费视频一区二区| 美腿丝袜在线亚洲一区 | 国产视频视频一区| 日本一区二区成人| 国产精品福利在线播放| 亚洲精选免费视频| 视频一区二区三区在线| 六月婷婷色综合| 国产精品88888| 成人av电影免费观看| 色综合久久综合网97色综合 | 精品国产凹凸成av人网站| 久久亚洲影视婷婷| 国产亚洲婷婷免费| 亚洲欧美日韩一区二区三区在线观看| 亚洲精品免费在线观看| 亚洲mv在线观看| 九色综合狠狠综合久久| 成人综合婷婷国产精品久久免费| av在线播放一区二区三区| 在线区一区二视频| 欧美精品国产精品| 日本一区二区视频在线观看| 日韩理论片网站| 国产成人免费在线观看不卡| av日韩在线网站| 5566中文字幕一区二区电影| 久久综合九色综合欧美亚洲| **性色生活片久久毛片| 五月天亚洲婷婷| 国产一区二区免费看| 色哟哟一区二区| 精品福利一区二区三区免费视频| 中文字幕一区二区视频| 日本不卡在线视频| 成人精品免费网站| 8v天堂国产在线一区二区| 国产亚洲短视频| 亚洲成人av免费| 成人一级视频在线观看| 欧美精品自拍偷拍| 中文字幕在线观看不卡视频| 丝袜美腿高跟呻吟高潮一区| 丁香激情综合五月| 精品免费国产一区二区三区四区| 亚洲人精品一区| 国产综合成人久久大片91| 91福利在线观看| 欧美国产日韩精品免费观看| 日本不卡一二三| 欧美综合在线视频| 国产精品狼人久久影院观看方式| 日韩高清在线一区| 欧美私模裸体表演在线观看| 中文一区一区三区高中清不卡| 免费看日韩a级影片| 欧美色欧美亚洲另类二区| 亚洲国产高清在线| 韩国一区二区在线观看| 在线成人av网站| 一区二区三区精品久久久| 国产.欧美.日韩| 26uuu国产日韩综合| 五月天亚洲婷婷| 欧美日本一区二区三区| 一区二区三区精品久久久| 99久久精品情趣| 国产欧美在线观看一区| 国内精品不卡在线| 精品欧美久久久| 婷婷综合另类小说色区| 欧美亚洲高清一区| 一区二区三区在线观看视频| 99久久精品久久久久久清纯| 欧美激情中文字幕一区二区| 国产乱码精品一品二品| 日韩精品一区二区三区swag| 日韩va亚洲va欧美va久久| 欧美日本韩国一区| 五月婷婷色综合| 91精品国产91久久久久久最新毛片| 一区二区在线观看不卡|