ImageJ | 去除异常值

文摘   科学   2024-09-03 09:10   上海  

科 / 研 / 图 / 像 / 处 / 理


在做荧光比率图时,需要两个图像做除法,之前的文章介绍了这一操作:


点击跳转《ImageJ | 荧光比率图


在做除法时,不可避免会遇到分母是 0 的情况,这会导致图像出现很多异常值。


这些异常值通常为 NaN、Infinity 或者一些特别大的值。


这篇文章会用做比率图的例子,来详细介绍一下怎样去除 NaN 以及 Infinity 这些异常值。


实现效果:



先上 Macro 代码,ijm 文件公众号后台回复“异常值”获取:




代码解析

代码最关键的部分是对 pixel value 的值进行判断:


value = getPixel(i, j);if (isNaN(value)) {    setPixel(i, j, 0);}if (value>1000) {    setPixel(i, j, 0);}


isNaN() 判断 pixel value 是否为 NaN。


如果 pixel value 过大,这里设置为 pixel value 大于 1000,说明这个 pixel 为异常值,直接赋零。从而去除 Infinity。


真正使用时需要根据实际情况调整这一参数。


除了利用 Macro 进行异常值的去除,ImageJ 中也自带了对这些异常值的处理:


https://imagej.net/ij/docs/menus/process.html#nans


例如,Process -> Noise -> Remove NaN






创作不易,点个关注再走吧
如果有任何问题,欢迎在文章下方留言
 

作者 | Treasure琛
排版 | 小乐喵喵   

往期回顾

◆ ImageJ | 荧光共标细胞计数

◆ ImageJ | 图像标注

◆ ImageJ | 图像去卷积

◆ ImageJ | 自动图片拼接

◆ ImageJ | 3D可视化及测量

◆ ImageJ | 图像自动配准

◆ ImageJ | 重新认识你的图像

◆ ImageJ | 荧光比率图




科研图像处理
科研图像处理一站式解决方案,原知乎《ImageJ实用教程》
 最新文章