c - LabVIEW 中的错误像素校正?

标签 c labview

我有一个labVIEW程序,它可以读取光谱的波长和强度作为时间的函数。我读取此数据的硬件使用 ccd 芯片,因此有时会遇到坏像素。该程序在文本文件中输出强度的二维数组。我想编写一个单独的程序来读取该文件,然后找到并消除坏像素点。坏像素应该很明显,因为强度比周围点大 10 倍。熟悉 LabVIEW 的人都知道,您可以使用基本上是 C 的语言插入公式节点和代码。所以我用 C 和 LabVIEW 来标记它。

最佳答案

尝试使用中值或百分位数过滤器。由于您不想实际更改数据,除非数据已经存在,因此您可以执行以下操作:

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 代码片段:

Intensity Filter Using Outliers

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

关于c - LabVIEW 中的错误像素校正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651344/

相关文章:

c - 我的实现未能删除 c 中 String 的最后一个字符

按下一次后Labview按钮卡住

python - 在 Windows 上构建 Python C 扩展

c - 如何使用memcpy初始化struct中的char指针

c - 我需要向 DLL 添加什么才能导出指向 i_d 的指针?

c - 如何使用labview从kinect获取图片

linux - Labview .VI 应用程序从 Window 到 Linux 应用程序

c++ - 如何将labview图像类型转换为opencv图像类型(或Mat)?

c - 使用 C 语言计算中缀表达式的最简单方法是什么?

c - 该代码可以在线运行,但不能从我自己的编译器中运行