全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1934
推到 Plurk!
推到 Facebook!

有關於RGB轉HSI的格式問題

缺席
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-15 19:42:09 IP:140.127.xxx.xxx 訂閱
我參照了公式與板上各位大大的一些做法
自己寫了一支小程式 改了好久始終轉不回去
之後隨機秀出 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
編輯記錄
istillloving 重新編輯於 2008-10-15 19:42:42, 註解 無‧
istillloving 重新編輯於 2008-11-05 16:44:23, 註解 無‧
系統時間:2024-04-27 1:38:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!