關於影像處理~分離RGB之程式設計 |
尚未結案
|
Hades3350
一般會員 發表:1 回覆:1 積分:0 註冊:2008-10-01 發送簡訊給我 |
目的:
把1張bmp(512*512)用成24張bitplane 構想: 我想把檔頭全部寫回24張圖去 接下來用3個buffer分別存R.G.B的值 假設除以3餘0為B,1為G,2為R,然後再做運算 然後就把值寫回每一張圖去 最後~ 會出現24張圖 **可是我的這個程式跑不動 不知道是哪裡出了錯 想請各位厲害的大大幫我找一下 謝謝~ -----------------------------以下是我的程式碼------------------------------- #include #include #define d 0 int main() { FILE *orimage=fopen("A.bmp","rb"); unsigned char buffer[786486]; int a,b,c,e,f,g,n,temp1,temp2,temp3,temp4,temp5,temp6; char miko1[c],miko2[e],miko3[f],miko4[g]; for(a=0;a<786486;a ) buffer[a]=getc(orimage); FILE *Bplane0_B=fopen("A0_B.bmp","wb"); FILE *Bplane1_B=fopen("A1_B.bmp","wb"); FILE *Bplane2_B=fopen("A2_B.bmp","wb"); FILE *Bplane3_B=fopen("A3_B.bmp","wb"); FILE *Bplane4_B=fopen("A4_B.bmp","wb"); FILE *Bplane5_B=fopen("A5_B.bmp","wb"); FILE *Bplane6_B=fopen("A6_B.bmp","wb"); FILE *Bplane7_B=fopen("A7_B.bmp","wb"); FILE *Bplane0_G=fopen("A0_G.bmp","wb"); FILE *Bplane1_G=fopen("A1_G.bmp","wb"); FILE *Bplane2_G=fopen("A2_G.bmp","wb"); FILE *Bplane3_G=fopen("A3_G.bmp","wb"); FILE *Bplane4_G=fopen("A4_G.bmp","wb"); FILE *Bplane5_G=fopen("A5_G.bmp","wb"); FILE *Bplane6_G=fopen("A6_G.bmp","wb"); FILE *Bplane7_G=fopen("A7_G.bmp","wb"); FILE *Bplane0_R=fopen("A0_R.bmp","wb"); FILE *Bplane1_R=fopen("A1_R.bmp","wb"); FILE *Bplane2_R=fopen("A2_R.bmp","wb"); FILE *Bplane3_R=fopen("A3_R.bmp","wb"); FILE *Bplane4_R=fopen("A4_R.bmp","wb"); FILE *Bplane5_R=fopen("A5_R.bmp","wb"); FILE *Bplane6_R=fopen("A6_R.bmp","wb"); FILE *Bplane7_R=fopen("A7_R.bmp","wb"); for(b=0;b<54;b ) { fprintf(Bplane7_B,"%c",buffer[b]); fprintf(Bplane6_B,"%c",buffer[b]); fprintf(Bplane5_B,"%c",buffer[b]); fprintf(Bplane4_B,"%c",buffer[b]); fprintf(Bplane3_B,"%c",buffer[b]); fprintf(Bplane2_B,"%c",buffer[b]); fprintf(Bplane1_B,"%c",buffer[b]); fprintf(Bplane0_B,"%c",buffer[b]); fprintf(Bplane7_G,"%c",buffer[b]); fprintf(Bplane6_G,"%c",buffer[b]); fprintf(Bplane5_G,"%c",buffer[b]); fprintf(Bplane4_G,"%c",buffer[b]); fprintf(Bplane3_G,"%c",buffer[b]); fprintf(Bplane2_G,"%c",buffer[b]); fprintf(Bplane1_G,"%c",buffer[b]); fprintf(Bplane0_G,"%c",buffer[b]); fprintf(Bplane7_R,"%c",buffer[b]); fprintf(Bplane6_R,"%c",buffer[b]); fprintf(Bplane5_R,"%c",buffer[b]); fprintf(Bplane4_R,"%c",buffer[b]); fprintf(Bplane3_R,"%c",buffer[b]); fprintf(Bplane2_R,"%c",buffer[b]); fprintf(Bplane1_R,"%c",buffer[b]); fprintf(Bplane0_R,"%c",buffer[b]); } for(c=54;c<786486;c ) { if(c%3==0) { miko2[e]=miko1[c]; // printf( "%d" "\n", miko2[e]); e ; } else if(c%3==1) { miko3[f]=miko1[c]; f ; } else if(c%3==2) { miko4[g]=miko1[c]; g ; } } for(e=0;e<(512*512);e ) { for(n=1;n<=8;n ) { temp1=miko2[e]%2; temp2=miko2[e]/2; miko2[e]=temp2; if(temp1==1) temp1=255; else temp1=0; switch(n) { case 1: fprintf(Bplane7_B,"%c",char(temp1)); fprintf(Bplane7_B,"%c",d); fprintf(Bplane7_B,"%c",d); break; case 2: fprintf(Bplane6_B,"%c",char(temp1)); fprintf(Bplane6_B,"%c",d); fprintf(Bplane6_B,"%c",d); break; case 3: fprintf(Bplane5_B,"%c",char(temp1)); fprintf(Bplane5_B,"%c",d); fprintf(Bplane5_B,"%c",d); break; case 4: fprintf(Bplane4_B,"%c",char(temp1)); fprintf(Bplane4_B,"%c",d); fprintf(Bplane4_B,"%c",d); break; case 5: fprintf(Bplane3_B,"%c",char(temp1)); fprintf(Bplane3_B,"%c",d); fprintf(Bplane3_B,"%c",d); break; case 6: fprintf(Bplane2_B,"%c",char(temp1)); fprintf(Bplane2_B,"%c",d); fprintf(Bplane2_B,"%c",d); break; case 7: fprintf(Bplane1_B,"%c",char(temp1)); fprintf(Bplane1_B,"%c",d); fprintf(Bplane1_B,"%c",d); break; case 8: fprintf(Bplane0_B,"%c",char(temp1)); fprintf(Bplane0_B,"%c",d); fprintf(Bplane0_B,"%c",d); break; } } } for(f=0;f<(512*512);f ) { for(n=1;n<=8;n ) { temp3=miko3[f]%2; temp4=miko3[f]/2; miko3[f]=temp4; if(temp3==1) temp3=255; else temp3=0; switch(n) { case 1: fprintf(Bplane7_G,"%c",d); fprintf(Bplane7_G,"%c",char(temp3)); fprintf(Bplane7_G,"%c",d); break; case 2: fprintf(Bplane6_G,"%c",d); fprintf(Bplane6_G,"%c",char(temp3)); fprintf(Bplane6_G,"%c",d); break; case 3: fprintf(Bplane5_G,"%c",d); fprintf(Bplane5_G,"%c",char(temp3)); fprintf(Bplane5_G,"%c",d); break; case 4: fprintf(Bplane4_G,"%c",d); fprintf(Bplane4_G,"%c",char(temp3)); fprintf(Bplane4_G,"%c",d); break; case 5: fprintf(Bplane3_G,"%c",d); fprintf(Bplane3_G,"%c",char(temp3)); fprintf(Bplane3_G,"%c",d); break; case 6: fprintf(Bplane2_G,"%c",d); fprintf(Bplane2_G,"%c",char(temp3)); fprintf(Bplane2_G,"%c",d); break; case 7: fprintf(Bplane1_G,"%c",d); fprintf(Bplane1_G,"%c",char(temp3)); fprintf(Bplane1_G,"%c",d); break; case 8: fprintf(Bplane0_G,"%c",d); fprintf(Bplane0_G,"%c",char(temp3)); fprintf(Bplane0_G,"%c",d); break; } } } for(g=0;g<(512*512);g ) { for(n=1;n<=8;n ) { temp5=miko4[g]%2; temp6=miko4[g]/2; miko4[g]=temp6; if(temp5==1) temp5=255; else temp5=0; switch(n) { case 1: fprintf(Bplane7_R,"%c",d); fprintf(Bplane7_R,"%c",d); fprintf(Bplane7_R,"%c",char(temp5)); break; case 2: fprintf(Bplane6_R,"%c",d); fprintf(Bplane6_R,"%c",d); fprintf(Bplane6_R,"%c",char(temp5)); break; case 3: fprintf(Bplane5_R,"%c",d); fprintf(Bplane5_R,"%c",d); fprintf(Bplane5_R,"%c",char(temp5)); break; case 4: fprintf(Bplane4_R,"%c",d); fprintf(Bplane4_R,"%c",d); fprintf(Bplane4_R,"%c",char(temp5)); break; case 5: fprintf(Bplane3_R,"%c",d); fprintf(Bplane3_R,"%c",d); fprintf(Bplane3_R,"%c",char(temp5)); break; case 6: fprintf(Bplane2_R,"%c",d); fprintf(Bplane2_R,"%c",d); fprintf(Bplane2_R,"%c",char(temp5)); break; case 7: fprintf(Bplane1_R,"%c",d); fprintf(Bplane1_R,"%c",d); fprintf(Bplane1_R,"%c",char(temp5)); break; case 8: fprintf(Bplane0_R,"%c",d); fprintf(Bplane0_R,"%c",d); fprintf(Bplane0_R,"%c",char(temp5)); break; } } } } |
andyshooter
一般會員 發表:6 回覆:10 積分:3 註冊:2009-04-01 發送簡訊給我 |
|
Hades3350
一般會員 發表:1 回覆:1 積分:0 註冊:2008-10-01 發送簡訊給我 |
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
andyshooter
一般會員 發表:6 回覆:10 積分:3 註冊:2009-04-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |