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

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

?? frontend.c

?? PDF417編碼的算法的源程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
	    {
	      for ( jj = 0; jj < width; jj += 1)
                {
                  if ( ii + jj < MAX_Y_PIXEL)
		    {
		     pixel_array[beginx][ii+jj].greyval = 510;
                    }
                }
            } 
        }
    }


  if (( beginy - endy )  == 0)  // horizontal
    {
      if ( endx > beginx )          
        {
	  for ( ii = beginx; ii < endx; ii += 1)
	    {
	      for ( jj = 0; jj < width; jj += 1)
                {
                  if ( ii + jj < MAX_X_PIXEL)
		    {
		      pixel_array[ii + jj ][beginy].greyval = 510;
                    }
                }
            } 
        }
      else
        {
          for ( ii = endx; ii < beginx; ii += 1)
	    {
	      for ( jj = 0; jj < width; jj += 1)
                {
                  if ( ii + jj < MAX_X_PIXEL)
		    {
		     pixel_array[ii + jj][beginy].greyval = 510;
                    }
                }
            } 
        }
    }


}

//
//  Search thru all the dark squares found and find the 
//      min and max of the x and y directions to make a box

void find_dark_sq_box()

{
  int ii;
  int debug;

  min_box_x = MAX_X_PIXEL;
  min_box_y = MAX_Y_PIXEL;

  max_box_x = 0;
  max_box_y = 0;

  debug = 0;
  
  for (ii = 0; ii < dark_sqindex; ii += 1)
    {
      if ( dark_squares[ii].xloc > max_box_x)
        {
          max_box_x = dark_squares[ii].xloc;
	}
      if ( dark_squares[ii].yloc > max_box_y)
        {
          max_box_y = dark_squares[ii].yloc;
	}
      if ( dark_squares[ii].xloc < min_box_x)
        {
          min_box_x = dark_squares[ii].xloc;
	}
      if ( dark_squares[ii].yloc < max_box_y)
        {
          min_box_y = dark_squares[ii].yloc;
	}

    }

  min_box_x = min_box_x - box_x_incr;
  min_box_y = min_box_y - box_y_incr;
  max_box_x = max_box_x + box_x_incr;
  max_box_y = max_box_y + box_y_incr;

  if  (debug)
    {
     printf("In find dark square bounding box \n");
     printf(" min x,y = %d %d \n", min_box_x, min_box_y);
     printf(" max x,y = %d %d \n", max_box_x, max_box_y);
    }

  // draw a box around the dark squares and put this in pixel_array
  // then you can dump out the pixel_array and see how good it is

  if ( debug)
    {
     draw_pixel_line( 4, max_box_x, max_box_y, min_box_x, max_box_y );
     draw_pixel_line( 4, max_box_x, max_box_y, max_box_x, min_box_y );
     draw_pixel_line( 4, min_box_x, min_box_y, max_box_x, min_box_y );
     draw_pixel_line( 4, min_box_x, min_box_y, min_box_x, max_box_y );
    }

}  // find dark square box

// expand the box around the symbol by 25 %
//   may not be necessary...

void expand_dark_box25()
{
  int x_length;
  int y_length;
  
  int new_x_len;
  int new_y_len;
  
  int new_min_x;
  int new_min_y;
  int new_max_x;
  int new_max_y;


  x_length = max_box_x - min_box_x;
  
  if ( x_length < ( MAX_X_PIXEL / 50) )
    {
      printf("Symbol too small or missing \n");
    }

  y_length = max_box_y - min_box_y;
  
  if ( y_length < ( MAX_Y_PIXEL / 50) )
    {
      printf("Symbol too small or missing \n");
    }
  
  // expand by 25%

  new_x_len = x_length + (x_length / 4);
  new_y_len = y_length + (y_length / 4);


  new_min_x =  max_box_x - ( x_length / 2 ) - new_x_len;
  new_min_y =  max_box_y - ( y_length / 2 ) - new_y_len;

  if ( new_min_x > 0)
    {
      new_max_x =  new_min_x + new_x_len;
    }

  if ( new_min_y > 0)
    {
      new_max_y =  new_min_y + new_y_len;
    }


  if ( new_min_x < 0)
    {
      // could try to expand by 10 % here
      new_min_x = min_box_x;
    }
  
  if ( new_min_y < 0)
    {
      // could try to expand by 10 % here
      new_min_y = min_box_y;
    }

  if ( new_max_x > MAX_X_PIXEL)
    {
      // could try to expand by 10 % here
      new_max_x = max_box_x;
    }

  
  if ( new_min_y > MAX_Y_PIXEL)
    {
      // could try to expand by 10 % here
      new_max_y = max_box_y;
    }

  b_box_maxx = new_max_x;
  b_box_maxy = new_max_y;  

  b_box_minx = new_min_x;
  b_box_miny = new_min_y;  
  
  b_box_xlen = ( b_box_maxx - b_box_minx);
  b_box_ylen = ( b_box_maxy - b_box_miny);
}

void get_box_len()
{
  int x_length;
  int y_length;
  
  int new_x_len;
  int new_y_len;
  
  int new_min_x;
  int new_min_y;
  int new_max_x;
  int new_max_y;
  int debug;


  debug = 0;

  x_length = max_box_x - min_box_x;
  
  if ( x_length < ( MAX_X_PIXEL / 50) )
    {
      printf("Symbol too small or missing \n");
    }

  y_length = max_box_y - min_box_y;
  
  if ( y_length < ( MAX_Y_PIXEL / 50) )
    {
      printf("Symbol too small or missing \n");
    }
  


  new_x_len = x_length ;
  new_y_len = y_length ;


  new_min_x = min_box_x;
  new_min_y = min_box_y;
  new_max_x = max_box_x;
  new_max_y = max_box_y;

  b_box_maxx = new_max_x;
  b_box_maxy = new_max_y;  

  b_box_minx = new_min_x - (x_length / 20);
  if ( b_box_minx < (min_box_x / 2))
    {
      b_box_minx = (min_box_x / 2);
    }

  b_box_miny = new_min_y;  
  
  b_box_xlen = ( b_box_maxx - b_box_minx);
  b_box_ylen = ( b_box_maxy - b_box_miny);
  if (debug)
    {
      printf("End get_box_length \n");
    }
}

// get 3 points on the left edge of the bounding box
// one at upper left
// one at center
// one at bottom left
// use these as starting points for the line scan
//

void get_scan_points()
{
    
  int debug;
  debug = 0;

  
  scan_upleft_x = b_box_minx;
  scan_upleft_y = b_box_maxy;

  scan_cenleft_x = b_box_minx;
  scan_cenleft_y = b_box_maxy - (b_box_ylen/2);

  scan_lowleft_x = b_box_minx;
  scan_lowleft_y = b_box_miny;

  if (debug) { printf(" In scan points upper left = %d %d \n",
		      scan_upleft_x, scan_upleft_y);
               printf(" In scan points center left = %d %d \n",
		      scan_cenleft_x, scan_cenleft_y);
               printf(" In scan points lower left = %d %d \n",
		      scan_lowleft_x, scan_lowleft_y);
  } 
}


void get_pixel(int inx, int iny)
{
 
  if ( pixel_cnt < MAX_LINE_PIXEL)
    {
     line_data[pixel_cnt] = pixel_array[inx][iny].greyval;
     line_x[pixel_cnt]= inx;
     line_y[pixel_cnt]= iny;

     pixel_cnt += 1;
    }
  else
    {
      printf("Too many pixels in this line \n");
      
    }
}

// get pixel used when taking the normal to the line
//
void get_pixel_norm(int inx, int iny)
{
  int debug;
  
  debug = 0;
 
  if ( pixel_cnt < MAX_LINE_PIXEL)
    {
     norm_line_data[pixel_cnt] = pixel_array[inx][iny].greyval;
  
     normal_x[pixel_cnt] = inx;
     normal_y[pixel_cnt] = iny;
     if (debug)
       {
        if ( pixel_cnt == 0)
         {
	  if (debug ) {
            printf("at 0 normal_x , normal_y = %d %d \n", normal_x[0],
		normal_y[0]);
	  }
         }
       }
     pixel_cnt += 1;
    }
  
}

// get pixel used when taking a line from the pix_out data
//   for final processing
//
void get_pixel_post(int inx, int iny)
{
  int debug;

  debug = 0;

  if ( post_pixel_cnt < MAX_LINE_PIXEL)
    {
      if ( ( inx > 0 ) && ( iny > 0))
	{
          if ( ( inx < pixel_out_xlen ) && ( iny < pixel_out_ylen))
            {
              post_line_data[post_pixel_cnt] = pix_out[inx][iny].greyval;
  
              post_x[post_pixel_cnt] = inx;
              post_y[post_pixel_cnt] = iny;
            }
          else
	    {
              post_line_data[post_pixel_cnt] = 0;
            }
        }
      else
	{
          post_line_data[post_pixel_cnt] = 0;
          post_x[post_pixel_cnt] = -1;
          post_y[post_pixel_cnt] = -1;
        }
     if (debug)
       {
        if ( post_pixel_cnt == 0)
         {
	   printf("at 0 post_x , post_y = %d %d \n", post_x[0],
		post_y[0]);
         }
       }
      post_pixel_cnt += 1;
    }
  
}

void save_line()
{
  int jj;

  if ( save_line_cnt < MAX_LINE_SCANS )
    {
      save_line_data[save_line_cnt].pixelcnt = pixel_cnt;
      save_line_data[save_line_cnt].has_8111 = FALSE;
      save_line_data[save_line_cnt].has_7111 = FALSE;
      save_line_data[save_line_cnt].slope = slope;
      save_line_data[save_line_cnt].dir = dir;
      
      for ( jj= 0; jj < pixel_cnt; jj += 1)
	{
	  save_line_data[save_line_cnt].line_vals[jj]= line_data[jj];
	  //   printf("line_data,jj=%d = %d \n",jj,line_data[jj]);
          save_line_data[save_line_cnt].line_x[jj] = line_x[jj];
          save_line_data[save_line_cnt].line_y[jj] = line_y[jj];
        }
      
    }
  else
    {
      printf("Internal error: Too many left probe lines  = %d\n", save_line_cnt);
      printf("Allowed max = %d \n",MAX_LINE_SCANS);
    }

}

void skip_underthress()
{

  while(( line_data[lpixel] < line_threshold ) && ( lpixel < pixel_cnt))
    {
      lpixel += 1;
      barwidth += 1;
    }
}


// called by analyzer module , used to get the bar
//   widths in the module  using the best xlines in
//   the column

int get_mod_xline(int yval, int rowin , int colin)
{
  int good_space;
  int kk;
  int debug;
  int mid_point;
  int bit_int;
  int space_min;
  int space_max;
  int bit[20];
  int this_mod_index;

  debug = 0;
  good_space = TRUE;
  space_min = (best_onewidth * 3 ) / 4;
  space_max = (( int)( best_onewf * 6)) / 4;

  bit[0] = 0;
  for ( kk = 1; kk < vert_line_cnt; kk += 1)
    {
      bit[kk] = 0;
      if ( (pix_col_xline[kk] - pix_col_xline[kk-1]) < space_min)
	{
	  good_space = FALSE;
          if (debug) { printf("Good space failed : too narrow \n"); }
        }
      if ( (pix_col_xline[kk] - pix_col_xline[kk-1]) > space_max)
	{
	  good_space = FALSE;
          if (debug) { printf("Good space failed : too wide\n"); }
        }
      if ( debug)
        {
          printf("kk = %d pix_col_xline[kk] = %d \n", kk, pix_col_xline[kk]);
        }
    }

  xline_mod_index = -1;
  this_mod_index = -1;

  if (( vert_line_cnt > 15) && ( good_space == TRUE))
    {
     for ( kk = 0; kk < vert_line_cnt ; kk += 1)
      {
       if ( kk > 0)
	{
          mid_point = ( pix_col_xline[kk] + pix_col_xline[kk-1] ) / 2;
        }
       else
        {
          mid_point = pix_col_xline[kk] / 2;
        }
        
        bit[kk] = test_black( mid_point, yval ,1);
        if (debug)
	  {
	    printf("mid_point = %d yval = %d  kk = %d \n",
		   mid_point, yval, kk );
          }
      }
     
   
      bit_int = bits_to_symbol( bit );

     if (debug) { printf("xline bit_int = %x \n", bit_int); }

     this_mod_index = find_index(bit_int,2, rowin, colin);

     if ( this_mod_index != -1 )
       {
         if (debug) { printf("This mod index = %d \n", this_mod_index); }

         xline_mod_index = this_mod_index;         
         return(0);
         }
     else
       {
	 return(-1);
       }
    }
  else
    {
      return(-1);
    }

}


// called by analyzer module , used to get the bar
//   widths in the module

void get_mod_bar(int in_row, int in_col )
{

  int mbarwidth;
  int debug;

  debug = 0;
  if ( debug) { printf("In get_mod_bar \n"); }


  mbarwidth = 0;

  if ( mod_bar_cnt < MAX_MOD_BARS)
    {
      mod_bar_array[mod_bar_cnt].beginx = mod_line_x[lpixel];
      mod_bar_array[mod_bar_cnt].lpixel = lpixel;
    }

  while(( mod_line_data[lpixel] > line_threshold ) && ( lpixel < mod_pixel_cnt))
    {
      lpixel += 1;
      mbarwidth += 1;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美国产| 欧美性受xxxx| 国产天堂亚洲国产碰碰| 国产精品自产自拍| 国产日韩一级二级三级| 岛国精品在线播放| 亚洲欧美日韩电影| 欧美精品亚洲一区二区在线播放| 日韩精品一二区| 久久久久九九视频| youjizz久久| 一区二区成人在线视频| 在线电影一区二区三区| 国产主播一区二区| 亚洲视频一区二区免费在线观看| 欧美性感一区二区三区| 精品一区中文字幕| 中文字幕视频一区| 欧美一卡2卡3卡4卡| 国产99久久久国产精品潘金| 亚洲欧美成人一区二区三区| 日韩欧美一级二级三级久久久| 国产乱淫av一区二区三区 | 欧美久久免费观看| 国产一区久久久| 亚洲乱码日产精品bd| 日韩亚洲欧美成人一区| 成人a区在线观看| 五月天国产精品| 中文字幕免费一区| 日韩欧美一区在线| 一本大道综合伊人精品热热| 蜜桃久久久久久久| 怡红院av一区二区三区| 精品88久久久久88久久久 | 7777精品伊人久久久大香线蕉超级流畅 | 日韩精品一区二区三区中文不卡 | 亚洲一区日韩精品中文字幕| 日韩欧美一区二区视频| 91视频精品在这里| 国产伦精一区二区三区| 亚洲五码中文字幕| 国产精品久久久久婷婷| 国产精品进线69影院| 欧美日韩在线直播| 丁香婷婷综合激情五月色| 亚洲香肠在线观看| 中文一区一区三区高中清不卡| 欧美日韩精品免费| 99免费精品在线观看| 久久99蜜桃精品| 亚洲成人久久影院| 亚洲精品视频在线| 中文字幕精品—区二区四季| 欧美成人vps| 欧美一区二区三区性视频| 色婷婷久久一区二区三区麻豆| 国产精一区二区三区| 久久99热99| 美女视频第一区二区三区免费观看网站| 亚洲欧美激情在线| 中文字幕一区三区| 国产精品免费视频一区| 国产丝袜在线精品| 久久久国产精华| 久久综合视频网| 久久综合九色综合97婷婷女人 | 欧美日韩精品综合在线| 色婷婷av一区二区三区之一色屋| 国产精品91xxx| 国产激情精品久久久第一区二区| 美女视频黄a大片欧美| 美女在线一区二区| 黄页视频在线91| 国产美女视频一区| 国产成人亚洲综合a∨婷婷| 韩国欧美一区二区| 国产自产v一区二区三区c| 狠狠色丁香久久婷婷综合丁香| 免费成人小视频| 久久精品国产精品青草| 久久精品国产久精国产| 国产一区在线看| 高清不卡一二三区| 91最新地址在线播放| 一本到三区不卡视频| 在线亚洲欧美专区二区| 欧美日韩你懂的| 日韩视频一区在线观看| 精品久久久久久久一区二区蜜臀| 26uuu亚洲综合色| 中文字幕精品在线不卡| 亚洲色图另类专区| 天天色天天操综合| 精品一区二区在线观看| 国产不卡高清在线观看视频| caoporn国产一区二区| 色狠狠色狠狠综合| 91精品欧美一区二区三区综合在 | 精品美女被调教视频大全网站| 久久这里只有精品首页| 中文字幕国产一区二区| 一区二区三区不卡视频在线观看 | 人禽交欧美网站| 国产福利一区二区三区在线视频| 99麻豆久久久国产精品免费| 欧美性猛片aaaaaaa做受| 精品少妇一区二区三区免费观看 | 青娱乐精品在线视频| 国模大尺度一区二区三区| 99久久国产综合精品女不卡| 欧美性受极品xxxx喷水| 久久婷婷国产综合国色天香| 成人免费在线视频观看| 青青草成人在线观看| 不卡的av电影| 日韩欧美亚洲国产精品字幕久久久 | 色婷婷久久久亚洲一区二区三区 | 欧美片网站yy| 欧美videofree性高清杂交| 日本一区二区视频在线观看| 亚洲国产欧美一区二区三区丁香婷| 免费观看在线综合色| 成人天堂资源www在线| 6080yy午夜一二三区久久| 中文字幕乱码一区二区免费| 日韩黄色免费电影| 99久久夜色精品国产网站| 91精品免费观看| 一区二区三区丝袜| 国产成人日日夜夜| 777a∨成人精品桃花网| 亚洲视频每日更新| 国产91精品精华液一区二区三区 | 欧美日韩大陆在线| 欧美日韩激情一区二区| 国产亚洲精品超碰| 首页国产丝袜综合| 成人av集中营| 精品国产91亚洲一区二区三区婷婷 | 国产一区二区三区四区五区美女| 91久久精品国产91性色tv| 久久综合av免费| 强制捆绑调教一区二区| 91久久精品一区二区三区| 国产精品入口麻豆原神| 国产真实乱子伦精品视频| 欧美高清视频www夜色资源网| 亚洲视频一二三| eeuss影院一区二区三区| 久久久久久久精| 狠狠色丁香久久婷婷综合_中 | 国产91丝袜在线18| 亚洲精品在线免费观看视频| 日韩激情一二三区| 91精品一区二区三区久久久久久| 亚洲一区二区三区三| 亚洲精品成a人| 成人av资源在线| 日本一区二区三区在线观看| 国产毛片精品一区| 久久综合九色综合97婷婷女人| 久国产精品韩国三级视频| 欧美一区在线视频| 日本视频免费一区| 日韩欧美一区二区免费| 看国产成人h片视频| 宅男在线国产精品| 日韩av网站在线观看| 日韩一二三区视频| 国产永久精品大片wwwapp| 精品精品欲导航| 国产馆精品极品| 国产精品亲子伦对白| aaa国产一区| 伊人一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲国产精品久久一线不卡| 欧美吻胸吃奶大尺度电影 | 国产精品视频一二三| av毛片久久久久**hd| 一区二区三区加勒比av| 欧美日韩在线播放一区| 青青草国产成人av片免费| 久久亚洲捆绑美女| 不卡免费追剧大全电视剧网站| 亚洲三级在线免费| 欧美二区在线观看| 国产精品正在播放| 亚洲视频一二三| 欧美一区二区三区视频在线| 激情综合色播激情啊| 中文字幕一区在线观看| 欧美另类变人与禽xxxxx| 麻豆高清免费国产一区| 国产精品欧美久久久久一区二区| 欧美天堂亚洲电影院在线播放| 精品国产凹凸成av人网站| 久久精品久久精品| 国产精品大尺度|