wu

Dependencies:   mbed-rtos mbed

Fork of Boboobooov4 by kao yi

Revision:
15:585df3979be8
Parent:
14:2d90b0066fc6
Child:
16:b78dce5c0e98
--- 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;  
+}