kao yi
/
Bov3
wu
Fork of CCC by
Diff: camera_api.cpp
- Revision:
- 15:585df3979be8
- Parent:
- 14:2d90b0066fc6
- Child:
- 16:b78dce5c0e98
diff -r 2d90b0066fc6 -r 585df3979be8 camera_api.cpp --- a/camera_api.cpp Sat Jun 28 12:16:33 2014 +0000 +++ b/camera_api.cpp Sun Jun 29 14:02:25 2014 +0000 @@ -18,322 +18,56 @@ int l_care=10; int r_care=118; - - - // find center - // case 1 // | // - // case 2 / | / - - char find_type=0x00; - + int b_start=0; int b_end=0; - int b_start=0; - + bool l_f1=false; + bool l_f2=false; + bool find=false; + int b_thr_up=32; + int b_thr_dn=5; int b_w=0; - int b_center=0; - - int b2_end=0; - int b2_start=0; - int b2_center=0; - - int b2_w=0; - - int center=30; - int j=64; - bool f1=false; - bool f2=false; - bool f3=false; - bool f4=false; - int w_thr_up=32; - int w_thr_dn=0; - - if(sign_line_imageR[64]==' ') - find_type=0x02; - else - find_type=0x01; - - - for(int i=64; i<r_care; i++,j--) { - - - switch(find_type) { - - - case 0x01: - - if(f1==false&&sign_line_imageR[i]==' ') { - if(f1==false) { - b_start=i; - f1=true; - } - - } - if(f1== true&& f2==false&&sign_line_imageR[i]=='O') { - if(f2==false) { - b_end=i-1; - f2=true; - } - - } - - if(f3==false&&sign_line_imageR[j]==' ') { - if(f3==false) { - b2_end=j; - f3=true; - } - - } - if(f3==true&&f4==false&&sign_line_imageR[j]=='O') { - if(f4==false) { - b2_start=j-1; - f4=true; - } - + + for(int i=r_care;i>l_care;i--){ + + + if(l_f1==false&&sign_line_imageR[i]==' '){ + + b_start=i; + l_f1=true; + } + if(l_f1==true && sign_line_imageR[i]=='O'){ + b_end=i-1; + l_f2=true; + } + + if(l_f1==true && l_f2== true){ + b_w=b_start-b_end; + if( b_thr_up>b_w&&b_w> b_thr_dn){ + + find=true; + break; } - - - break; - - - case 0x02: - - if(sign_line_imageR[i]=='O') { - - if(f1==false) { - b_end=i; - f1=true; - } - } - - if(sign_line_imageR[j]=='O') { - - if(f2==false) { - b_start=j; - f2=true; - } - - } - - - break; - - } - - + else{ + l_f1=false; + l_f2=false; + + } + + + } + + } - - b_w=b_start-b_end; - b2_w=b2_start-b2_end; - - de_v=b_start; - de_v2=b_end; - - switch(find_type) { - - case 0x01: - b_center=(b_end+b_start)/2; - b2_center=(b2_end+b2_start)/2; - - - if(w_thr_up>b_w&&(b_center!=0)&&(b_center-64)<(64-b2_center)) - center=b_center; - else - center=b2_center; - - - - - -/* if( ( w_thr_up- (b_w))>0 &&( ( w_thr_up- (b_w)) < (w_thr_up-(b2_w)) ) ) { - center=(b_end+b_start)/2; - - - - // } else if( ( w_thr_up- (b2_w) )>0 ) { - center=(b2_end+b2_start)/2; -// } else { - - center=65; - - //???????????????? - - } - -*/ - break; - - case 0x02: - center=(b_end+b_start)/2; - - - break; - } - - return center; - -} - - + + + + -int BX_camera::black_centerL(void) -{ - - int l_care=10; - int r_care=118; - - - // find center - // case 1 // | // - // case 2 / | / - - char find_type=0x00; - - int b_end=118; - int b_start=118; - - int b_w=0; - int b_center=0; - - int b2_end=0; - int b2_start=0; - int b2_center=0; - - int b2_w=0; - - int center=30; - int j=64; - bool f1=false; - bool f2=false; - bool f3=false; - bool f4=false; - int w_thr_up=32; - int w_thr_dn=0; - - if(sign_line_imageR[64]==' ') - find_type=0x02; - else - find_type=0x01; - - - for(int i=64; i<r_care; i++,j--) { - - - switch(find_type) { - - - case 0x01: - - if(f1==false&&sign_line_imageL[i]==' ') { - if(f1==false) { - b_start=i; - f1=true; - } - - } - if(f1== true&& f2==false&&sign_line_imageL[i]=='O') { - if(f2==false) { - b_end=i-1; - f2=true; - } - - } - - if(f3==false&&sign_line_imageL[j]==' ') { - if(f3==false) { - b2_end=j; - f3=true; - } - - } - if(f3==true&&f4==false&&sign_line_imageL[j]=='O') { - if(f4==false) { - b2_start=j-1; - f4=true; - } - - } - - - break; - - - case 0x02: - - if(sign_line_imageL[i]=='O') { - - if(f1==false) { - b_end=i; - f1=true; - } - } - - if(sign_line_imageL[j]=='O') { - - if(f2==false) { - b_start=j; - f2=true; - } - - } - - - break; - - } - - - } - - b_w=b_start-b_end; - b2_w=b2_start-b2_end; - - de_v=b_start; - de_v2=b_end; - - switch(find_type) { - - case 0x01: - b_center=(b_end+b_start)/2; - b2_center=(b2_end+b2_start)/2; - - - if(w_thr_up>b_w&&(b_center!=0)&&(b_center-64)<(64-b2_center)) - center=b_center; - else - center=b2_center; - - - - - -/* if( ( w_thr_up- (b_w))>0 &&( ( w_thr_up- (b_w)) < (w_thr_up-(b2_w)) ) ) { - center=(b_end+b_start)/2; - - - - // } else if( ( w_thr_up- (b2_w) )>0 ) { - center=(b2_end+b2_start)/2; -// } else { - - center=65; - - //???????????????? - - } - -*/ - break; - - case 0x02: - center=(b_end+b_start)/2; - - - break; - } - - return (center+padding); - -} + if(find) + return (b_start+b_end)/2; + else + return -1; +}