Changeset 617
- Timestamp:
- 02/17/10 11:44:49 (5 months ago)
- Files:
-
- 1 modified
-
trunk/projects/cmucam1/ppm-fd/yuv2rbg.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/projects/cmucam1/ppm-fd/yuv2rbg.c
r616 r617 2 2 #include <stdlib.h> 3 3 4 int clip(int x) 5 { 6 if(x>255) x=255; 7 if(x<0) x=0; 8 return x; 9 } 4 10 5 11 int main() … … 7 13 FILE *fp,*out_fp,*mono_fp; 8 14 int x,y,x_size,y_size,depth; 9 int yc,uc,vc,r,g,b ;15 int yc,uc,vc,r,g,b,C,D,E; 10 16 char type[32]; 11 17 … … 30 36 //g = 1.164*(yc - 16) - 0.813*(vc - 128) - 0.391*(uc - 128); 31 37 //r = 1.164*(yc - 16) + 1.596*(vc - 128); 32 r = yc + 1.403*vc; 33 g = yc - 0.344*uc - 0.714 * vc; 34 b = yc + 1.770 * uc; 35 if (r > 255) r = 255; 36 if (g > 255) g = 255; 37 if (b > 255) b = 255; 38 if (r < 0) r = 0; 39 if (g < 0) g = 0; 40 if (b < 0) b = 0; 38 //r = yc + 1.403*vc; 39 //g = yc - 0.344*uc - 0.714 * vc; 40 //b = yc + 1.770 * uc; 41 //r = yc + 1.402 * (uc-128); 42 //g = yc - 0.34414 * (vc-128) - 0.71414 * (uc-128); 43 //b = yc + 1.772 * (vc-128); 44 C= yc - 16; 45 D= uc - 128; 46 E= vc - 128; 47 48 r = ( 298 * C + 409 * E + 128) >> 8; 49 g = ( 298 * C - 100 * D - 208 * E + 128) >> 8; 50 b = ( 298 * C + 516 * D + 128) >> 8; 51 52 r=clip(r); 53 g=clip(g); 54 b=clip(b); 41 55 42 56 fprintf( out_fp,"%c%c%c",r,g,b);
