实验科学的图像和视频分析工具

xptools的Python项目详细描述


xptools

PyPI version

用于实验科学的分析工具,用于显示图像、检测粒子(细胞、气泡、晶体)、移动前沿并分析其形状、大小和分布。

安装

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/

screenshot

  • 分析气泡-这个脚本需要一个电影(或电影目录)在表面上显示气泡(明暗)。采用分水岭分割算法对气泡进行识别并表征其大小。然后绘制气泡密度和平均尺寸随时间变化的曲线。
analyze_bubbles --plotly --scale 60 bubble_movie.avi

screenshot

  • 分析_晶体-这个脚本采取了一个目录,其中包含含有晶体的液滴照片(在交叉极化下)。它使用一个阈值算法来分割晶体,计数并测量它们的大小。
analyze_crystals --plotly --key funct_key.txt imagedirectory/

screenshot

  • 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文件了解详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用MongoDB进行java漏斗分析?   java如何重构此代码以仅执行一次方法logViolation(),并在单个字符串中获取字符串变量(speedType)的所有值   java如何将方向向量转换为角度?   Java中json文件中的股票价格   java有没有一种方法可以查看网站中的哪些资源加载了selenium?   java文件定位器可以指向不同文件服务器上的目录吗?   java GWT等待SetVisibleRange和ClearData完成   macos Java Applet无法在Mac OS下接收鼠标输入   java BottomNavigationView不支持单次单击必须单击两次   MS SQL Server 2012中的java:我的数据库名称是J.3.0.0\u DEV我无法在Oracle SQL Developer IDE中连接它?   java对JFileChooser的修改,只显示文件夹内容   java如何将动态对象查询更改为criteria builder或更好的性能   java中的swing新字体类型   java Hibernate。删除未使用的条目   上载CSV文件并将其转换为Java模型对象   java如何将信息添加到库的日志消息中?   JavaEclipseGit:使用egit从另一个分支、标记或引用打开版本   使用Firebase控制台消息的java开放视频