////////////////////////一维高斯函数公式//////////////////////////////
////x*x/////////////////
////-1*----------------/////////////////
////12*Sigma*Sigma/////////////////
////------------e/////////////////
/////////////////////
////\/2*pi*Sigma/////////////////
//////////////////////////////////////////////////////////////////////
for(inti=0;i<nWidowSize;i)
{
doublenDis=(double)(i-nCenter);
pdKernal_1[i]=exp(-(0.5)*nDis*nDis/(nSigma*nSigma))/(sqrt(2*3.14159)*nSigma);
dSum_1=pdKernal_1[i];
}
for(i=0;i<nWidowSize;i)
{
pdKernal_1[i]/=dSum_1;//进行归一化
}
2)分别进行x向和y向的一维加权滤波,滤波后的数据保存在矩阵pCanny中for(i=0;i<nHeight;i)//进行x向的高斯滤波(加权平均)
{
for(j=0;j<nWidth;j)
{
doubledSum=0;
doubledFilter=0;//滤波中间
for(intnLimit=(-nCenter);nLimit<=nCenter;nLimit)
{
if((jnLimit)>=0&&(jnLimit)<nWidth)//图像不能超出边界
{
dFilter=(double)nImageData[i*nWidthjnLimit]*pdKernal_1[nCenternLimit];
dSum=pdKernal_1[nCenternLimit];
}
}
nData[i*nWidthj]=dFilter/dSum;
}
}
for(i=0;i<nWidth;i)//进行y向的高斯滤波(加权平均)
{
for(j=0;j<nHeight;j)
{
doubledSum=0.0;
doubledFilter=0;
for(intnLimit=(-nCenter);nLimit<=nCenter;nLimit)
{
if((jnLimit)>=0&&(jnLimit)<nHeight)//图像不能超出边界
{
dFilter=(double)nData[(jnLimit)*nWidthi]*pdKernal_1[nCenternLimit];
dSum=pdKernal_1[nCenternLimit];
}
}
pCanny[j*nWidthi]=(unsignedchar)(int)dFilter/dSum;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33926-4.html
会在网上实名揭露吗
我们没必要心急
是不是理亏
易烊千玺真是好看极了