加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
ImagePy是基于Python开发的开源图像处理框架,采用wxpython界面基础,基于
Numpy为核心图像数据结构,pandas为核心表格数据结构,并支持任何基于Numpy,pandas的插件扩展,可以方便的接入scipy.ndimage,scikit-image, simpleitk, opencv等算法库进行插件扩展。
GitHub:https://github.com/Image-Py/imagepy
习惯ImageJ的用户可以在Windows > Windows Style进行风格切换
特点:软件具有友好的用户操作界面,能读取,保存多种图像数据格式,支持ROI设定,绘图,测量等鼠标操作。能完成图像滤波,形态学运算等常规操作,可以很好的完成一些分割,区域计数,几何测量,密度分析相关的工作。并可以对分析结果进行数据筛选,过滤,统计等相关工作。(软件功能定位可以理解为ImageJ + SPSS,虽然目前尚未达到)
论文:ImagePy: an open-source,Python-based and platform-independent software package for bioimage analysis
链接:https://academic.oup.com/bioinformatics/article/34/18/3238/4989871
论坛:ImagePy 是forum.image.sc的合作伙伴,任何关于ImagePy的开发及使用上的问题都可以在https://forum.image.sc讨论。
安装过程可能遇到的问题
系统支持:ImagePy支持Python2.7及3.x,但强烈推荐大家使用python3.ImagePy 是一个基于 wxpython 的 ui 框架,wxpython在linux 上不能用 pip 进行安装。你需要从https://extras.wxpython.org/wxPython4/extras/linux下载和你的 linux 系统相匹配的 whl文件。
因为 ImagePy 会编写一些配置信息,因此,在 linux 和 mac 系统上,可能会存在权限问题,所以请从 sudo 命令启动。如果使用 pip 安装,请按照下面的方法来添加用户参数:pip install –user imagepy。
如果在 anaconda 虚拟环境中安装 ImagePy,那么你可能会遇到这样的错误:This program needsaccess to the screen. Please run with a Framework build of python, and onlywhen you are logged in on the main display,如果遇到这个问题,请用pythonw-m imagepy启动。
功能简介:
ImagePy具有非常丰富的功能,而这里,我们仅仅用一个特定的例子,来对ImagePy进行一个初步的认识,我们这里选取scikit-image官方的硬币分割,相比之下,这个例子简单而全面。
图像打开
菜单:File > Local Samples > Coins,打开ImagePy的内置示例图像。ImagePy支持bmp, jpg, png, gif, tif等常见图像类型,支持xls, xlsx,csv表格格式,通过ITK插件,也可以获得dicom,nii等医学数据格式的读取存储功能,而通过OpenCV插件,可以获得wmv,avi等视频格式的读取存储功能。
区域过滤
菜单:Analysis > Region Analysis > Geometry Filter,对区域进行过滤,这里可以简单的通过面积进行过滤,ImagePy的几何过滤可以通过面积,周长,拓扑,丰满度,偏心率等指标对区域进行过滤,可以输入复合条件,正数表示选择大于等于,负数表示选择小于,通过过滤的被设定为front color,没通过的设定为back color,back color设定为100可以清楚看到有哪些被滤掉了,如果确认符合要求,back color设定为0,即清除。同时ImagePy也支持灰度密度过滤,颜色过滤,色彩聚类等功能。
区域分析
在列头单击右键可以设定文字颜色,小数精度,线条样式等
统计图表
菜单:Table > Chart > Hist Chart,表格数据一个常见的需求是绘制图表,这里我们对面积,周长两列进行直方图统计,得到分布直方图。ImagePy的表格可以绘制折线图,饼状图,柱状图,散点图等常见的图表。图表自带缩放,移动等功能,也可以存储为图片。
三维可视乎
宏录制与执行
菜单:Window > Develop Tool Sute, 打开开发者工具,我们看到宏录制器。以上我们手工完成了一个图像数据分割,假设这些流程非常固定,并且很适合处理这类问题,而一次次的重复点击会让人审美疲劳。这种情况我们可以通过宏录制,来将若干过程捏合成一步。宏录制器类似一个录音机,打开时,我们每一步操作会形成一行记录。而我们可以点暂停键停止录制,点播放键执行。当宏运行是,会依次质心记录下来的命令,从而实现将若干步骤捏合成一步。
我们将宏保存为一个.mc文件,将文件拖放到ImagePy最下方的状态栏,宏会自动被执行,我们还可以将mc文件拷贝到ImagePy文件目录下的menus的子目录下,文件启动时,宏文件会被在对应位置解析成一个菜单项,当我们点击菜单,宏也会执行。
工作流
Filter插件
以上我们介绍了宏和工作流,利用宏和工作流可以串联已有的功能,但不能制造新的功能,而这里我们试图为ImagePy添加一个新功能。ImagePy可以方便的接入任何基于Numpy的函数,我们以scikit-image的Canny算子为例。
from skimage import feature
from imagepy.core.engine import Filter
class Plugin(Filter):
title =’Canny’
note =[‘all’, ‘auto_msk’, ‘auto_snap’, ‘preview’]
para ={‘sigma’:1.0, ‘low_threshold’:10, ‘high_threshold’:20}
view =[(float, ‘sigma’, (0,10), 1, ‘sigma’,’pix’),
(‘slide’, ‘low_threshold’, (0,50), 4, ‘low_threshold’),
(‘slide’, ‘high_threshold’, (0,50), 4, ‘high_threshold’)]
defrun(self, ips, snap, img, para = None):
returnfeature.canny(snap, para[‘sigma’], para[low_threshold’],
para[‘high_threshold’], mask=ips.get_msk())*255
Table的作用机制
类比Filter,Table同样有title,note,para,view参数,当插件运行是框架通过para,view解析为对话框,交互完成后,参数和当表格会一起传递给run,run中对表格进行核心处理,data是当前表格对应的pandas.DataFrame对象,tps中存储了其他信息,比如tps.rowmsk,tps.colmsk可以拿到当前表格被选中的行列掩膜。
其他插件类型
上面介绍的Filter和Table是最重要的两种插件,但ImagePy也支持其他一些类型的插件扩展,目前有九种,他们是:
1. Filter:主要用来对图像进行处理
2. Simple:类似于Filter,但侧重与图像的整体特性,比如对ROI的操作,对假彩色的操作,区域测量,或者对整个图像栈进行的三维分析,可视化等。
3. Free:用于不依赖图像的操作,比如打开图像,关闭软件等。
4. Tool:借助鼠标在图上进行交互,将以小图标的形式出现在工具栏上,例如画笔。
5. Table:对表格进行操作,例如统计,排序,出图。
6. Widget:以面板形式展现的功能部件,例如右侧的导航栏,宏录制器等。
7. Markdown:MarkDown标记语言,点击后会弹出独立窗口展示文档。
8. Macros:命令序列文件,用于串联固定的操作流程。
9. Workflow:工作流,宏和MarkDown的结合,用于制作交互式指引流程。
开发意义
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212805 人正在系统学习中 相关资源:3D建模软件(绿色版)_3d建模用什么软件好-专业指导文档类资源-CSDN…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!