http://hi.baidu.com/belial/item/9956917a0bb48038714423a2
这篇日志主要是根据文章“实时单幅图片高光去除算法”(篇一)和“Real-time Specular Highlight Removal Using a Single Image -eccv-10-qingxiong-yang“(篇二)来写的,没有终于原文,原文在后面做的一些逼近工作或滤波工作我没有进行精确的处理,但是这是上述两片论文的基本原理。这两篇论文的最大不同在于后面最大漫反射色度的求法,两者从不同的角度进行的,但我更倾斜于第二种,因为篇一是参考篇二,其中难免借用了一些其的观点,而且我觉得篇二实现起来更符合图像处理的观点,当然篇一也有其合理之处。建议有兴趣的读者可以去看看,篇二在论坛里有得下载,或者去http://www.cs.cityu.edu.hk/~qiyang/ 下载,如要引用,请注明出处,代码如下:
int highlight_remove_Chi(IplImage* src,IplImage* dst,double Re)
{
int height=src->height;
int width=src->width;
int step=src->widthStep;
int i=0,j=0;
unsigned char R,G,B,MaxC;
double alpha,beta,alpha_r,alpha_g,alpha_b,beta_r,beta_g,beta_b,temp=0,realbeta=0,minalpha=0;
double gama,gama_r,gama_g,gama_b;
unsigned char* srcData;
unsigned char* dstData;
for (i=0;i<height;i++)
{
srcData=(unsigned char*)src->imageData+i*step;
dstData=(unsigned char*)dst->imageData+i*step;
for (j=0;j<width;j++)
{
R=srcData[j*3];
G=srcData[j*3+1];
B=srcData[j*3+2];
alpha_r=(double)R/(double)(R+G+B);
alpha_g=(double)G/(double)(R+G+B);
alpha_b=(double)B/(double)(R+G+B);
alpha=max(max(alpha_r,alpha_g),alpha_b);
MaxC=max(max(R,G),B);// compute the maximum of the rgb channels
minalpha=min(min(alpha_r,alpha_g),alpha_b);
beta_r=1-(alpha-alpha_r)/(3*alpha-1);
beta_g=1-(alpha-alpha_g)/(3*alpha-1);
beta_b=1-(alpha-alpha_b)/(3*alpha-1);
beta=max(max(beta_r,beta_g),beta_b);//将beta当做漫反射系数,则有 // gama is used to approximiate the beta
gama_r=(alpha_r-minalpha)/(1-3*minalpha);
gama_g=(alpha_g-minalpha)/(1-3*minalpha);
gama_b=(alpha_b-minalpha)/(1-3*minalpha);
gama=max(max(gama_r,gama_g),gama_b);
temp=(gama*(R+G+B)-MaxC)/(3*gama-1);
//beta=(alpha-minalpha)/(1-3*minalpha)+0.08;
//temp=(gama*(R+G+B)-MaxC)/(3*gama-1);
dstData[j*3]=R-(unsigned char)(temp+0.5);
dstData[j*3+1]=G-(unsigned char)(temp+0.5);
dstData[j*3+2]=B-(unsigned char)(temp+0.5);
}
}
return 1;
}
下面是用上述代码做的两组实验结果,第一副为原图,第二幅为去高光后的图片,效果比较明显。
但是该算法对具有大面积高光的图片,处理的效果很一般,很容易出现过处理或处理不足的情况。对这方面有兴趣的朋友,欢迎一起来讨论。
另一个类似文章链接:https://blog.csdn.net/marooon/article/details/81560083。
去除光照方面总结的比较多的一个文章,链接
https://blog.csdn.net/qq_29540745/article/details/74681853