有關於RGB轉HSI的格式問題 |
缺席
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
我參照了公式與板上各位大大的一些做法
自己寫了一支小程式 改了好久始終轉不回去 之後隨機秀出 H 的值來看 卻發現怎麼都只有1和2 我想請問各問前輩 我的格是哪裡出錯了呢 因為我實在看不出我的公式有哪裡出錯 以下已經修正完成 [code cpp] //*******************************RGB2HSI2RGB************************************// void RHR( double R[w][h],double G[w][h],double B[w][h],float ed ) { for(j=0;j for(i=0;i minv=(R[i][j]<=G[i][j])?R[i][j]:G[i][j]; minv=(minv<=B[i][j])?minv:B[i][j]; if( (R[i][j]==G[i][j]) && (G[i][j]==B[i][j]) ) { buffh[i][j]=0.0; buffi[i][j]=R[i][j]; buffs[i][j]=0.0; } else { buffi[i][j]=(R[i][j] G[i][j] B[i][j])/3.0; buffs[i][j]=1-(3.0/(R[i][j] G[i][j] B[i][j]))*(minv); vv = 0.5*((R[i][j]-G[i][j]) (R[i][j]-B[i][j]))/sqrt((R[i][j]-G[i][j])*(R[i][j]-G[i][j]) (R[i][j]-B[i][j])*(G[i][j]-B[i][j])) ; if(B[i][j]<=G[i][j]) { buffh[i][j]=acos(vv); } else { buffh[i][j]=2*pi-acos(vv); } } } } for(j=0;j for(i=0;i if( ((0.0)<=buffh[i][j]) && (buffh[i][j]<(pi*2/3)) ) { rr=(buffi[i][j]*ed)*(1 (buffs[i][j]*cos(buffh[i][j]))/(cos(pi/3-buffh[i][j]))); bb=(buffi[i][j]*ed)*(1-buffs[i][j]); gg=3*(buffi[i][j]*ed)-(rr bb); } else if( ((pi*2/3)<=buffh[i][j]) && (buffh[i][j]<(4*pi/3)) ) { rr=(buffi[i][j]*ed)*(1-buffs[i][j]); gg=(buffi[i][j]*ed)*(1 (buffs[i][j]*cos(buffh[i][j]-(pi*2/3)))/(cos(pi-buffh[i][j]))) ; bb=3*(buffi[i][j]*ed)-(rr gg); } else if( ((4*pi/3)<=buffh[i][j]) && (buffh[i][j]<=(2*pi)) ) { gg=(buffi[i][j]*ed)*(1-buffs[i][j]); bb=(buffi[i][j]*ed)*(1 (buffs[i][j]*cos(buffh[i][j]-(4*pi/3)))/(cos((5*pi/3)-buffh[i][j]))) ; rr=3*(buffi[i][j]*ed)-(gg bb); } //R if(rr>=255) { r[i][j]=255; } else if(rr<=0) { r[i][j]=0; } else { r[i][j]=rr; } //G if(gg>=255) { g[i][j]=255; } else if(gg<=0) { g[i][j]=0; } else { g[i][j]=gg; } //B if(bb>=255) { b[i][j]=255; } else if(bb<=0) { b[i][j]=0; } else { b[i][j]=bb; } } } } //*********************************End************************************// [/code] -------------------------
------
恩...
附加檔案:48f5d7118e98c_程式.rar
編輯記錄
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |