opencv直方图变换

将原图像通过变换函数映射成新的像素值,b = f(a),a是变换后的像素值,b表示变换前像素值,f为变换函数。在这里使用查表的方法(Look Up Table, 简称LUT),先计算出整个灰度空间在f上的映射,再根据映射表格变换图像的像素值。
f: b = 255*(a-min)/(max-min) ,max,min是图像像素值中的最大最小值。

//映射表格
Mat lut(1,256,CV_8U);
for(int i=0;i<256;i++)
{
    if(lut.at(i)(i)=0;
    else if(lut.at(i)>imax)
        lut.at(i)=255;
    else
        lut.at(i)=static_cast(
        255.0*(i-imin)/(imax-imin)+0.5);
}

你可能感兴趣的:(opencv)