求解这段C语言程序什么意思

Python013

求解这段C语言程序什么意思,第1张

由于没有上下文,只能进行以下猜测:

-图象幅面宽度为640,高度480,象素宽度为24位,实际占用32位;

-pMem可能是每个单元(32位)存放一个象素;

-RGB是将三个字节组合成一个象素24位,BGR是将RGB顺序的图象象素中红和蓝的字节调换;

-前面一个循环将图象第3行到477行进行均值滤波,滤波方式是将该象素附近8个点与此象素求和再除以9得到平均值;

-后面一个循环是将图象未做滤波的几行填充成白色;

-图象处理算法可能存在问题:应该利用双存储区进行运算,结果为了节省内存导致均值运算会得不到正确运算,比如我们计算屏幕中心点的均值时,取到的左边一个象素、整个上面的3个象素均已经被之前的均值运算结果覆盖了,不是原来的象素数据了。也可能是利用高位未使用的字节存放的处理结果?由于没有RGB的定义无法判断。

1)去除异常(随机噪声)值

按描述,估计采集的是缓变信号。如果是的话,可以采用均值法滤波:求前N-1次采集值的均值后,与最近一次采集值比较(求差值),如果差值超过一定范围,则丢弃;否则保留。

2)判断递增递减

比较理想的方法是利用最近采集的N点数据做样条函数y=x(t),可以是二次样条或三次样条,具体采用几次样条,同样要有被测信号特性决定。然后再对样条函数求导(dy/dt )即可判断出递增递减趋势。点数值N大于等4个比较合适

GetADC(1) //AD转换开始函数

Current_buf += ADCR//将AD值叠加

CurrentVal =(word)(Current_buf>>2) //8位AD,配置的是左对齐,要右移两位得到正确值

Current_buf -= CurrentVal //感觉不是滤波,不清楚这行的目的。