vc++图片处理问题,高分求助

来源:百度知道 编辑:UC知道 时间:2024/06/02 07:15:07
要求读取任意图片并保留某种颜色再生成新的图片,其他部分用白色代替,老师要求我求出每个坐标的rgp的h值,再保留200到250范围内的颜色,给了我h值算法程序,但具体怎么操作请教大家,下面是给的程序
double HSI_ToH(int R ,int G ,int B )
{
double H;

if (B<=G)
{
if(B==G)
{
if((R>G)&&(R>B)) //* 当B=G时 H的所取值
H=0;
else if ((R<G)&&(R<B))
H=180;
else
H=180;
}

else
{
H=(double)(acos(0.5*((R-G)+(R-B))/(sqrt((R-G)*(R-G)+(R-B)*(G-B))))/PI*180);

//H=(90-atan2((2*R-G-B)/(G-B),sqrt(3))+0)/1;
}

}
if (B>G)
{
H=360-acos(0.5*((R-G)+(R-B))/(sqrt((R-G)*(R-G)+(R-B)*(G-B))))/PI*180;

//H=(90-atan2((2*R

你的意思是不是用图像中的每个像素的RGB值通过函数HSI_ToH来计算H值,当H在200与250之间时,保留这个像素值,否则就用白色代替。

这样不难,我可以帮你写个演示代码!

百度HI上给我个联系方式吧!这里贴不上来!

简单,但是代码很长!

如果保留了指定颜色,其他用白色,那整个图片就剩两种颜色了。计算H值也很好计算啊。

回答来应个景