
求opencv中高斯函数的具体解析,初学者,希望每条语句都解释下哈
voidGaussianBlur(constMat&src,Mat&dst,Sizeksize,doublesigma1,doublesigma2,intborderTy...
void GaussianBlur( const Mat& src, Mat& dst, Size ksize,
double sigma1, double sigma2,
int borderType )
{
if( ksize.width == 1 && ksize.height == 1 )
{
src.copyTo(dst);
return;
}
dst.create( src.size(), src.type() );
if( borderType != BORDER_CONSTANT )
{
if( src.rows == 1 )
ksize.height = 1;
if( src.cols == 1 )
ksize.width = 1;
}
Ptr<FilterEngine> f = createGaussianFilter( src.type(), ksize, sigma1, sigma2, borderType );
f->apply( src, dst );
} 展开
double sigma1, double sigma2,
int borderType )
{
if( ksize.width == 1 && ksize.height == 1 )
{
src.copyTo(dst);
return;
}
dst.create( src.size(), src.type() );
if( borderType != BORDER_CONSTANT )
{
if( src.rows == 1 )
ksize.height = 1;
if( src.cols == 1 )
ksize.width = 1;
}
Ptr<FilterEngine> f = createGaussianFilter( src.type(), ksize, sigma1, sigma2, borderType );
f->apply( src, dst );
} 展开
1个回答
展开全部
src和dst当然分别是输入图像和输出图像。Ksize为高斯滤波器模板大小,sigma1和sigma2分别为高斯滤波在横线和竖向的滤波系数。borderType为边缘扩展点插值类型
voidGaussianBlur( InputArray _src, OutputArray _dst, Size ksize,
double sigma1, double sigma2,
int borderType )
{
if( ksize.width == 1 && ksize.height == 1 )
{
src.copyTo(dst);//如果滤波器核的大小为1的话,则说明根本就不用滤波,输出矩阵与输入矩阵完全相同
return;
}
if( borderType != BORDER_CONSTANT )//当边缘扩展不是常数扩展时
{
if( src.rows == 1 )
ksize.height = 1;//如果输入矩阵是一个行向量,则滤波核的高强制为1
if( src.cols == 1 )
ksize.width = 1;//如果输入矩阵是一个列向量,则滤波核的宽强制为1
}
/*生成一个高斯滤波器引擎f*/
Ptr<FilterEngine> f = createGaussianFilter( src.type(), ksize, sigma1, sigma2, borderType );
f->apply( src, dst );//调用引擎函数,完成将输入矩阵src高斯滤波为输出矩阵dst
}
voidGaussianBlur( InputArray _src, OutputArray _dst, Size ksize,
double sigma1, double sigma2,
int borderType )
{
if( ksize.width == 1 && ksize.height == 1 )
{
src.copyTo(dst);//如果滤波器核的大小为1的话,则说明根本就不用滤波,输出矩阵与输入矩阵完全相同
return;
}
if( borderType != BORDER_CONSTANT )//当边缘扩展不是常数扩展时
{
if( src.rows == 1 )
ksize.height = 1;//如果输入矩阵是一个行向量,则滤波核的高强制为1
if( src.cols == 1 )
ksize.width = 1;//如果输入矩阵是一个列向量,则滤波核的宽强制为1
}
/*生成一个高斯滤波器引擎f*/
Ptr<FilterEngine> f = createGaussianFilter( src.type(), ksize, sigma1, sigma2, borderType );
f->apply( src, dst );//调用引擎函数,完成将输入矩阵src高斯滤波为输出矩阵dst
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |