实验科学的图像和视频分析工具
xptools的Python项目详细描述
xptools
用于实验科学的分析工具,用于显示图像、检测粒子(细胞、气泡、晶体)、移动前沿并分析其形状、大小和分布。
安装
xptools在pypi上,因此可以直接从pip使用命令安装它
pip install xptools
或者,您可以将存储库克隆到本地计算机并从源安装
git clone https://github.com/hlgirard/xptools
cd xptools
pip install .
脚本
- analyze_front-此scpt接受包含视频文件的目录。对于每个文件,它要求用户选择感兴趣的区域 并以最小阈值处理所选区域以查找最大区域。然后将该区域的高度绘制为 时间的函数。
analyze_front --plotly --scale 60 --framerate 30 moviedirectory/
- 分析气泡-这个脚本需要一个电影(或电影目录)在表面上显示气泡(明暗)。采用分水岭分割算法对气泡进行识别并表征其大小。然后绘制气泡密度和平均尺寸随时间变化的曲线。
analyze_bubbles --plotly --scale 60 bubble_movie.avi
- 分析_晶体-这个脚本采取了一个目录,其中包含含有晶体的液滴照片(在交叉极化下)。它使用一个阈值算法来分割晶体,计数并测量它们的大小。
analyze_crystals --plotly --key funct_key.txt imagedirectory/
- display_image_matrix-将目录中的所有图像作为矩阵排列,并保存生成的图像
display_image_matrix --lines 10 --compress imagedirectory/
实用程序
子模块实用程序中包括几个实用程序,包括:
select_roi:select_rectangle-提示用户对传递的图像进行矩形选择并返回选择的坐标。
videotools:open_video-将视频文件作为np数组列表打开,每个数组包含一帧视频。
视频工具:确定阈值-根据最小阈值算法确定用于视频的阈值。
视频工具:获取裁剪框-提示用户为每个视频文件选择感兴趣的区域。返回包含每个文件的选定区域坐标的数据帧。
imagetools:打开所有图像-打开文件夹中的所有图像并返回CV2图像列表。
示例用法
importpandasaspdfromxptools.utilsimportvideotoolsvideo_list=['Film1.avi','Film2.avi']dict_crop=videotools.obtain_cropping_boxes(video_list)forkey,valindict_crop:stack=videotools.open_video(key)(minRow,minCol,maxRow,maxCol)=valstack=[img[minRow:maxRow,minCol:maxCol]forimginstack]process(stack)
笔记本
- SegmentationBroadSpectrum.ipynb-测试不同的图像分割技术以确定哪种方法最合适
- SegmentationFocused.ipynb-实现特定分析并绘制粒子的大小和数量分布图
- 分水岭分割.ipynb-实现分水岭分割。
学分
显示图像矩阵的代码改编自https://gist.github.com/pgorczak/95230f53d3f140e4939c#file-imgmatrix-py
许可证
这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE.md文件了解详细信息。