labVIEW中的像素校正不正确?

时间:2018-06-01 21:45:17

标签: c labview

我有一个labVIEW程序,它读取光谱的波长和强度随时间的变化。我读过这些数据的硬件使用的是ccd芯片,所以有时候会遇到坏像素。程序在文本文件中输出2d强度数组。我想写一个单独的程序来读取这个文件,然后查找并消除坏的像素点。坏像素应该是显而易见的,因为强度比周围的点大10倍。熟悉labVIEW的人都知道,你可以用基本上是C的语言插入一个公式节点和代码。所以我用C和labVIEW标记了这个。

1 个答案:

答案 0 :(得分:1)

尝试使用中值或百分位滤镜。既然您不希望实际更改数据,除非它出现在那里,您可以执行以下操作:

for every point, collect *rank* points around it in every direction
compute statistics on the subset of points
if point is an outlier, replace with median value

通过这种方式,您实际上不会替换该点的值,除非它远远超出其中。如果点大于Q3 + 1.5 IQR或者小于Q1 - 1.5 IQR,则该点将是异常值。

这是一个VI Snippet执行我所描述的过滤器:

Intensity Filter Using Outliers

如果您只想更改极端异常值,请增加IQR乘数。