Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed freescal_cup_k22f
Diff: source/Camera.cpp
- Revision:
- 27:d1da489fc79a
- Parent:
- 26:a836e62e0c98
- Child:
- 28:c9d882501013
--- a/source/Camera.cpp Wed Jan 21 16:54:53 2015 +0000 +++ b/source/Camera.cpp Wed Jan 21 17:34:38 2015 +0000 @@ -21,6 +21,7 @@ double Periode_capture_image_us=50000; Ticker ticker_cam; + AnalogOut FLAG(DAC0_OUT); void readline(void) // fonction de détection de la ligne @@ -40,8 +41,8 @@ si=0; if ( (compteur & 1) && compteur >= 7) { // mesure sur front descendant, // pc.printf("lecture pixel\n"); - pixel1[index_pixel][0]=pix1.read_u16(); - pixel2[127 - index_pixel][0]=pix2.read_u16(); + pixel1[index_pixel]=pix1.read_u16(); + pixel2[127 - index_pixel]=pix2.read_u16(); index_pixel ++; } wait_us(10); @@ -63,10 +64,10 @@ // et de la droite sur tamponpixel[128:255] for (i=ordre; i<128; i++) { for (int a=0; a<=ordre; a++) { - tamponpixel1[i]+=pixel1[i-a][0]; - tamponpixel1[255-i]+=pixel1[127-i+a][0]; - tamponpixel2[i]+=pixel2[i-a][0]; - tamponpixel2[255-i]+=pixel2[127-i+a][0]; + tamponpixel1[i]+=pixel1[i-a]; + tamponpixel1[255-i]+=pixel1[127-i+a]; + tamponpixel2[i]+=pixel2[i-a]; + tamponpixel2[255-i]+=pixel2[127-i+a]; } tamponpixel1[i]/=(ordre+1); @@ -86,8 +87,8 @@ // Actualisation de l'image filtrée for (i=0;i<128;i++) { - pixel1[i][0]=(tamponpixel1[i]+tamponpixel1[127+i])/2; - pixel2[i][0]=(tamponpixel2[i]+tamponpixel2[127+i])/2; + pixel1[i]=(tamponpixel1[i]+tamponpixel1[127+i])/2; + pixel2[i]=(tamponpixel2[i]+tamponpixel2[127+i])/2; } } @@ -115,8 +116,8 @@ void moyenne_temporelle() { // Lignes de pixels passés - past_pixels1[128][ordre_temporel]={0}; - past_pixels2[128][ordre_temporel]={0}; + double past_pixels1[128][ordre_temporel]={0}; + double past_pixels2[128][ordre_temporel]={0}; int i,j; @@ -131,24 +132,26 @@ } // Le premier pixel passé est le pixel présent for (i=0;i<128;i++) - { - past_pixels1[i][0]=pixel1[] - past_pixels1[i][0]=pixel2[] - } + { + past_pixels1[i][0]=pixel1[i]; + past_pixels2[i][0]=pixel2[i]; + } // Moyenne des pixels passés enregistrée sur le plus // vieux pixel qui sera effacé à la prochaine moyenne - for (i=0;i<128;i++) + for (j=0;j<ordre_temporel;j++) { for (i=0;i<128;i++) { - pixel1[i][ordre2-1]=pixel1[i][ordre2-1]+pixel1[i][j]; - pixel2[i][ordre2-1]=pixel2[i][ordre2-1]+pixel2[i][j]; + past_pixels1[i][ordre_temporel-1] += past_pixels1[i][j]; + past_pixels2[i][ordre_temporel-1] += past_pixels2[i][j]; } - pixel1[i]=pixel1[i][0]/ordre2; - pixel2[i]=pixel2[i][0]/ordre2; + } + // On n'oublie pas de diviser par l'ordre pour faire la moyenne + for (i=0;i<128;i++) + { + pixel1[i] = past_pixels1[i][ordre_temporel-1]/ordre_temporel; + pixel2[i] = past_pixels2[i][ordre_temporel-1]/ordre_temporel; } - - } void interrupt_camera() { @@ -159,25 +162,25 @@ readline(); passebas(10); derivation(); - moyenne_temporel(); + moyenne_temporelle(); //passebas(4); for (int i=0;i<15;i++) { - pixel1[i][0]=0; - pixel2[i][0]=0; - pixel1[127-i][0]=0; - pixel2[127-i][0]=0; + pixel1[i]=0; + pixel2[i]=0; + pixel1[127-i]=0; + pixel2[127-i]=0; } max_detect1=indexMin; max_detect2=indexMin; for (int j=indexMin; j<=indexMax; j++) { - if (pixel1[j][0]>pixel1[max_detect1][0]) + if (pixel1[j]>pixel1[max_detect1]) { max_detect1=j; } - if (pixel2[j][0]>pixel2[max_detect2][0]) + if (pixel2[j]>pixel2[max_detect2]) { max_detect2=j; } @@ -209,6 +212,7 @@ servo= ordre; flag_new_image=1; FLAG.write(0); + } void init_camera()