1. 首毕培肆先,我们需要将采集到的原始数据存储至一个数组中,以便后续的计算。
2. 接着,我们需要定义一个变量来存储滑动窗口的大小,通常情况下,一个合适的窗口大小是根据实际应用场景来确定的。
3. 然后,我们可以通过循环语句将窗口内的数据进行累加,并计算出中侍平均值。在每次循环中,我们需要将最早加入窗口的数据删除,并将最新采集到的数据添加至窗口中。
4. 最后,我们需要将计算出的均值结果输出或存储至某个寄存器、数据存储器、或者其他设备中供后续使用。
比如,下面是一个示例程序:
```LD M100开始存储原始数据
LD D100将D100的值存储到M100中
ADD X0 将X0中的值加1
MOV D100, M[X0] 将M[X0]的值存储到D100中
CMP X0, K1N10 判断X0是否大于等于K1N10
JMPE ELSE如果是,则跳转至ELSE
AVG: 均值计算过程
MOV D10, D100 将D100的值存储到D10中
ADD D20, D10 将D10加到D20中
ADD X1, K1将X1加1
CMP X1, K2N10 判断X1是否大于等于K2N10
JMPE OUTPUT 如果是,手轿则跳转至OUTPUT
MOV D100, M[X1] 将新采集的数据存储到D100中
SUB D20, D[K1] 将最早加入窗口的数据删除
JMP AVG 重复执行均值计算过程
OUTPUT:
DIV D20, K1N10 计算出平均值
ST D30, M[100] 将结果存储至M100寄存器中
JMP START 回到程序开始处
ELSE:
MOV X0, K1 将X0重置为窗口大小
MOV D20, K0 将累加器清零
JMP AVG 执行均值计算
图像的噪声滤波器有很多种,常用的有线性滤波器,非线性滤波器。采用线性滤波如邻域平滑滤波,对受到噪声污染而退化的图像复原,在很多情况下是有效的。但大多数线性滤波器具有低通特性,去除噪声的同时也使图像的边缘变模糊了。而另一种非线性滤波器如中值滤波,在一定程度上可以克服线性滤波器所带来的图像模糊问题,在滤除噪声的同时,较好地保留了图像的边缘信息。
邻域平滑滤波原理
邻域平均法[2]是一种利用Box模版对图像进行模版 *** 作(卷积运算)的图像平滑方法,所谓Box模版是指模版中所有系数都取相同值桥坦的模版,常用的3×3和5×5模版如下:
邻域平均法的数学含义是:
(式4-1)
式中:x,y=0,1,…,N-1S是以(x,y)为中心的邻域的集合,M是S内的点数。
邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。
中值滤波原理
中值滤波[2]就是用一个奇数点的移动窗口,将窗口的中心点的值用窗口内的各点中值代替。假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值及为110。
设有一个一维序列f1,f2,…,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,…,fi-1,fi,fi+1,…,fi+v(其中fi为窗口中心值,v=(m-1)/2),再将这m个点按其数值大小顺序排序,取其序号的中心点的那个数作为滤波输出。数学公式表示为:
Yi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} i∈N v=(m-1)/2 (式4-2)
Yi称为序列fi-v,…,fi-1,fi,fi+1,…,fi+v的中值
例如,有一序列{0,3,4,0,7},重新排序后为{0,0,3,4,7}则Med{0,0,3,4,7}=3。此列若用平滑滤波,窗口也取5,那么平滑滤波输出为(0+3+4+0+7)/5=2.8。
把一个点的特定长度或形状的邻域称派消灶作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。中值滤波很容易推广到二维,此时可尘扮以利用二维形式的窗口。
对于平面图像采用的二维中值滤波可以由下式表示:
(式4-3)
式中:A为窗口,{fij}为二维数据序列,即数字图像各点的灰度值。
对于本系统,由于采集到的是24位真彩色图像,每个像素点分别有R、G、B三个灰度分量,故要在窗口内分别找到这三个分量的中值,分别用这三个中值去代替窗口中心像素点的R、G、B三个灰度分量的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)