高斯+addWeighted
GaussianBlur( InputArray src, OutputArray dst, Size ksize,
double sigmaX, double sigmaY = 0,
int borderType = BORDER_DEFAULT );
src:原图
dst:高斯输出图
ksize:核大小
sigmaX:X方向偏值
addWeighted(InputArray src1, double alpha, InputArray src2,
double beta, double gamma, OutputArray dst, int dtype = -1);
src1:第一个数组
alpha:第一个数组权重
src2:第二个数组
beta:第二个数组权重=1-alpha
gamma:输出数组偏值(USM锐化时为0)
dst:输出数组
dtype:数组深度选择,默认-1表示两个数组深度一致输出数组深度为src1.depth()
cv::Mat pipeImg;//原图
cv::Mat pipegaussImg,pipeUSMImg;//高斯图和锐化图
double w = 1.0 / 3;//w在[0.1,0.9]
cv::GaussianBlur(pipeImg, pipegaussImg, cv::Size(15, 15), 0);
//USM锐化计算公式
//pipeUSMImg = (pipeImg - w * pipegaussImg) / (1 - w);//w在[0.1,0.9]
cv::addWeighted(pipeImg, 1 / (1 - w), pipegaussImg, w / (w - 1), 0, pipeUSMImg);