我第一次学图象处理,正在做对一24位的BMP图象处理,现要求从BMP的RGB转为HSI,由H再继续下去。我先读取BMP图片,再做RGB转HSI。这里的H是不是为一均值,即由每一象素的RGB值求得H,再平均。我下面的一段取RGB再求H,是不是有问题(我感觉求出的q值有问题),请帮忙指教,谢谢!
。。


for(j=0;j<lHeight;j++)
{
 for(i=0;i<3*lWidth;i++)
  {double R=(unsigned char)lpDIBBits + lLineBytes *j + i+2;//lpDIBBits为象素数据区起始指针
double G=(unsigned char)lpDIBBits + lLineBytes * j+ i+1;
double B=(unsigned char)lpDIBBits + lLineBytes *j + i;
h=acos(0.5*(2*R-G-B)/sqrt((R-G)*(R-G)+(R-B)*(G-B)));q=(q+h)/2; }
}