c语言定义图像滤波函数 c语言实现iir滤波器

c语言中值滤波问题?1. 是规定做中值滤波的点不含边缘的点(取决于中值滤波窗口大小) 。2,对图像边缘部分的信息进行镜像处理 。
求用C语言实现一个FIR数字低通滤波没有定义这个函数,此函数为
function hd=ideal_lp(wc,M);
%Ideal Lowpass filter computation
%------------------------------------
%[hd]=ideal_lp(wc,M)
% hd=ideal impulse response between 0 to M-1
% wc=cutoff frequency in radians
% M=length of the ideal filter
%
alpha=(M-1)/2;
n=[0:1:(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
点击file中的new中M-file,新建上面的函数,保存后就可以运行了
另外,团IDC网上有许多产品团购,便宜有口碑
只是用简单的C语言,能实现高斯滤波吗可以的 。
int*** SmoothImage(int ***XImage ,int width, int height, int channel)
{
double sigma =1.85; //(n/2 -1)*0.3 +0.8{ n = 9 ,no. of elements}
double conv[3][3];
double hg = 0;
//Convolution kernel
for(i=0; i3;i++)
{
for(j=0;j3;j++)
{
int u=i-1; //subtract from centre element index in 3*3 (1,1)
int v=j-1;
conv[i][j] =exp ( - ((u*u) + (v*v)) / (2*sigma*sigma) );
hg += conv[i][j];
}
}
for(int i=0; i3;i++)
{
for(int j=0;j3;j++)
{
conv[i][j] = conv[i][j] / hg;
}
}
int*** sXImage = 0;
sXImage =CreateImageMatrix( sXImage , width , height , channel );// allocating a 3d array
//Assigning weights
for(int i =0; iheight ; i++)
{
for(int j =0; jwidth ; j++)
{
for(int k =0; k3 ; k++)
{
double val = 0;
double valw =0;
if(j-10i-10)
{
val += conv[0][0] * XImage[i-1][j-1][k];
valw += conv[0][0];
}
if(i-10 )
{
val += conv[0][1] * XImage[i-1][j][k];
valw += conv[0][1];
}
if(i-10j+1width)
{
val += conv[0][2] * XImage[i-1][j+1][k];
valw += conv[0][2];
}
if(j-10 )
{
val += conv[1][0] * XImage[i][j-1][k];
valw += conv[1][0];
}
val += conv[1][1] * XImage[i][j][k];
valw += conv[1][1];
if(j+1width)
{
val += conv[1][2] * XImage[i][j+1][k];
valw += conv[1][2];
}
if(j-10i+1height)
{
val += conv[2][0] * XImage[i+1][j-1][k];
valw += conv[2][0];
}
if(i+1height)
{
val += conv[2][1] * XImage[i+1][j][k];
valw += conv[2][1];
}
if(j+1widthi+1height)
{
val += conv[2][2] * XImage[i+1][j+1][k];
valw += conv[2][2];
}
sXImage[i][j][k] = val / valw;
}
}
}
return( sXImage);
}
c语言中fabs()是什么意思数学函数:fabs
原型:extern float fabs(float x);
用法:#include math.h
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
// fabs.c
#include syslib.h
#include math.h
main()
{
float x;
clrscr(); // clear screen
textmode(0x00); // 6 lines per LCD screen
x=-74.12;
printf("|%f|=%f\n",x,fabs(x));
x=0;
printf("|%f|=%f\n",x,fabs(x));
x=74.12;
printf("|%f|=%f\n",x,fabs(x));
getchar();
return 0;
}
扩展资料:
程序判数滤波 采样的信号,如因常受到随机干扰传感器不稳定而引起严重失真时,可以采用此方法 。
方法是:根据生产经验确定两交采样允许的最大偏差△×,若先后两次采样的信号相减数值大于△×,表明输入的是干扰信号,应该去掉;
用上次采样值作为本次采样值,若小于、等于△×表明没有受到干,本次采样值效 。该方法适用于慢变化的物理参数的采样,如温度、物理位置等测量系统 。

推荐阅读