发布信息

Windows->开源图像处理框架:UI界面支持开放

作者:软荐小编      2024-03-13 09:27:01     122

据雷锋网AI技术评论介绍,ImagePy是一个Python开源图像处理框架,其UI界面支持开放插件。 在github上,不仅有这个图像处理软件的详细介绍,还有一些使用示例。 雷锋网AI技术评论接下来将详细介绍这个开源图像处理框架。

ImagePy是一个基于imagej等插件的图像处理框架。 它可以与 scipy.ndimage、scikit-image、opencv、simpleitk、mayavi 和任何基于 numpy 的库结合使用。 它的地址是。

源码图像处理软件是什么_图像处理源代码_图像处理软件源码

介绍

ImagePy 是一个用 python 编写的开源图像处理框架。 其UI界面、图像数据结构和表数据结构分别基于wxpython、numpy和pandas。 此外,它支持任何基于 numpy 和 pandas 的插件,可以轻松地在 scipy.ndimage、scikit-image、simpleitk、opencv 和其他图像处理库之间进行通信。

源码图像处理软件是什么_图像处理软件源码_图像处理源代码

概述、鼠标测量、几何变换、过滤、分割、计数等。

源码图像处理软件是什么_图像处理软件源码_图像处理源代码

如果您更喜欢IJ风格,请尝试使用“Windows -> Windows Style”进行切换

图像Py:

该项目的长期目标是成为 ImageJ 和 SPSS 的联合体。

地址:

安装:

支持的系统:python2.7和python3及以上版本的windows、linux、mac系统。

ImagePy是一个基于wxpython的UI框架,在Linux上无法使用pip安装。 您需要下载与您的linux系统匹配的whl文件。

因为ImagePy会写入一些配置信息,所以在linux和mac系统上可能会出现权限问题,所以从sudo命令开始。 如果使用pip安装,请添加用户参数,如下:pipsinstall --user imagepy。

如果你在anaconda虚拟环境中安装ImagePy,你可能会遇到错误:此程序需要屏幕访问。 请使用 python 构建的框架来运行它,并且仅当您已经登录到主监视器时才执行此操作。 如果遇到此问题,请从 pythonw -m 映像开始。

基本操作:

ImagePy拥有非常丰富的功能,这里我们用一个具体的例子来向大家展示ImagePy的这些功能。 我们选择官方使用scikit-image分币的例子,因为这个例子简单又全面。

打开图像

打开菜单:文件 -> 本地样本 -> 硬币,打开 ImagePy 中的样本图像。 ps:ImagePy支持bmp、jpg、png、gif、tif等常用文件格式。 通过安装ITK插件,还可以读取/保存dicom、nii等格式的医学图像。 如果安装了opencv,还可以读写wmv、avi等格式的视频。

图像处理软件源码_源码图像处理软件是什么_图像处理源代码

硬币

过滤和分段

选择复合滤波器对图像进行sobel梯度提取,然后使用上下阈值作为标记,最后对梯度图进行分水岭分割。 过滤和分割是图像处理工具包中的关键技术,也是测量成功与失败的最终区别。 还支持自适应阈值、分水岭等分割方法。

源码图像处理软件是什么_图像处理源代码_图像处理软件源码

上下分水岭分裂

源码图像处理软件是什么_图像处理软件源码_图像处理源代码

面具

二值化

菜单打开:进程 -> 二进制 -> 二进制补洞

分割后得到的掩模图像比较干净,但仍然存在一些孔洞和杂质,干扰计数和测量。 ImagePy支持腐蚀、膨胀、开环和闭环等二值运算,以及轮廓提取、中心轴提取和距离转换。

图像处理源代码_图像处理软件源码_源码图像处理软件是什么

填补漏洞

几何过滤

菜单打开:分析 -> 区域分析 -> 几何过滤器

ImagePy可以根据面积、周长、拓扑、稳定性和偏心率等参数进行几何过滤。 您还可以使用多个条件进行过滤。 每个数字可以是正数(或负数),表示所保存对象的对应参数大于(或小于)相对值。 保存的对象将设置为前面颜色图像处理软件源码,拒绝的对象将设置为背景颜色。 在此演示中,背景颜色设置为 100,以便您可以看到哪些对象被过滤掉。 对结果满意后,将背景颜色设置为 0。此外,ImagePy 还支持灰度密度过滤、颜色过滤、颜色聚类等功能。

图像处理源代码_源码图像处理软件是什么_图像处理软件源码

几何过滤

几何分析

菜单打开:处理->区域分析->几何分析计数,计算面积并分析参数。 通过选择 cov 选项,ImagePy 使用根据协方差计算的椭圆来拟合每个区域。 这里计算前面步骤中显示的参数,例如面积、周长、偏心率和稳定性。 其实上一步的过滤就是为这一步做准备。

源码图像处理软件是什么_图像处理软件源码_图像处理源代码

几何分析

图像处理软件源码_图像处理源代码_源码图像处理软件是什么

生成结果表(背景为黑色以强调椭圆)

按区域对表格进行排序

菜单打开:表 -> 统计 -> 表按键排序

选择主键作为区域,选择降序,表格将按区域降序排序。 表格是除图像之外的另一个重要数据。 从某种意义上来说,很多时候我们需要获取图像的相关信息,然后以表格的形式对数据进行后续处理。 ImagePy 支持表 I/O(xls、xlsx、csv)、过滤、切片、统计分析、排序等(右键单击列标题可设置文本颜色、小数精度、行样式等)。

图像处理源代码_源码图像处理软件是什么_图像处理软件源码

表面

图表

菜单打开:表格 -> 图表 -> 历史图表

我们经常需要使用表格数据来绘制图表。 在这里,我们绘制了一个区域及其周围列的直方图。 ImagePy表格可用于绘制条形图、饼图、直方图、散点图等常见图表(基于matplotlib)。 图表具有缩放、移动等功能,并且可以保存为图像。

图像处理软件源码_源码图像处理软件是什么_图像处理源代码

直方图

3D桌子

菜单打开:kit3d -> 3d 查看器 -> 2d 表面

图像的表面重建。 该图以三种方式展示了重建结果:索贝尔梯度图、高阈值和低阈值。 它显示了上下分水岭的工作原理:

ImagePy可以完成图像的3D滤波、3D轮廓构建、3D拓扑分析、2D表面重建和3D表面可视化。 3D视图可以自由拖动和旋转,结果可以保存为.stl文件。

图像处理软件源码_源码图像处理软件是什么_图像处理源代码

3D可视化

宏录制与执行

菜单打开:窗口 -> 开发工具套件

宏记录器出现在开发人员工具面板中。 我们手动执行图像分割。 然而,以这种方式同时处理 10 张以上的图像是非常繁琐的。 因此,假设处理这些问题时的步骤具有高度可重复性和鲁棒性,我们可以录制一个宏,将多个流程组合成一个一键式程序。 宏录音机与广播录音机类似。 打开后,它会记录每一步操作。 我们可以点击暂停按钮停止录音,或者点击播放按钮开始录音。 当宏运行时,记录的命令将按顺序执行,使其简单且可重现。

宏保存到 .mc 文件中。 将文件拖放到 ImagePy 底部的状态栏中,宏将自动执行。 我们也可以将.mc文件复制到ImagePy文件目录下的菜单的子菜单中。 当启动ImagePy时,宏文件将被解析到相应位置的菜单项中。 通过单击菜单图像处理软件源码,将执行宏。

图像处理软件源码_源码图像处理软件是什么_图像处理源代码

宏录制

工作流程

宏是一系列预定义的命令。 您可以通过将一系列固定动作录制到宏中来提高工作效率。 然而,宏缺乏灵活性。 例如,有时主要步骤是固定的,但参数调整需要人工参与。 这种情况下,工作流就可以解决这个问题。 ImagePy 中的工作流程是一个可视化流程图,分为两个层次:章节和部分。 本章对应工作流程中的矩形区域,这部分是矩形区域中的按钮和命令,并有图文说明。 当鼠标悬停在右侧消息窗口时,会显示相应的功能说明。 点击右上角“详细文档”,查看整个流程的文档。

工作流程实际上是用MarkDown(一种标记语言)编写的,但是编写时需要遵守以下规范:

标题=====

## 第1章

1.第1节第1节的一些评论...

2....

## 第2章

...

图像处理源代码_源码图像处理软件是什么_图像处理软件源码

工作流程

过滤器插件

上一节我们介绍了宏和工作流程,方便连接现有功能。 但有时我们需要创建新功能。 在本节中,我们将尝试向 ImagePy 添加新功能。 ImagePy 提供对任何基于 numpy 的函数的轻松访问。 我们以 scikit-image 的 canny 运算符为例。

示例代码如下:

从 skimage 导入功能

从 imagepy.core.engine 导入过滤器

类插件(过滤器):

标题 = '精明'

注意= [ '全部' , 'auto_msk' , 'auto_snap' , '预览' ]

参数 = { 'sigma': 1.0 , 'low_threshold' : 10 , 'high_threshold' : 20 }

视图 = [ ( 浮动 , '西格玛' , ( 0 , 10 ) , 1 , '西格玛' , '像素' ) ,

( '幻灯片' , 'low_threshold' , ( 0, 50 ) , 4 , 'low_threshold' ) ,

('幻灯片', 'high_threshold', ( 0 , 50 ) , 4 , 'high_threshold' ) ]

def run ( self , ips , snap , img , para = None ):

return feature.canny (snap, para[ 'sigma' ], para[ 'low_threshold' ],

para[ 'high_threshold' ] , mask = ips.get_msk ) * 255

图像处理源代码_源码图像处理软件是什么_图像处理软件源码

Canny 过滤器示例

创建自己的过滤器的步骤:

导入对应的库,一般是第三方库。

继承过滤器类。

该标题将用作菜单名称和参数对话框的标题,也用作宏录制的命令。

在注释中告诉框架它需要为你做什么,是否进行类型检查,是否支持选择,是否支持UNDO等。

para 是一个参数字典,包含函数所需的参数。

为视图中的每个参数定义交互方法,框架将通过读取这些信息自动生成一个用于参数调优的对话框。

编写main函数运行。 img 是当前图像,para 是用户输入的参数。 如果note中设置了auto_snap,snap将是img的副本。 我们可以处理这个副本并将结果存储在 img 中。 如果函数不支持指定的输出,我们也可以返回结果,框架会帮我们将结果复制到img中并显示。

将文件保存为 xxx_plg.py,然后复制到菜单文件夹并重新启动 ImagePy。 它将作为菜单项加载。

这个框架对我们有什么作用?

该框架以正式的方式将复杂的任务整合在一起,并帮助我们执行:

表面

如前所述,表格是除了图像之外的另一种非常重要的数据类型。 同样,ImagePy 也支持表扩展。 这里我们给出前面描述中使用的按键排序的示例。

代码是:

从 imagepy.core.engine 导入表

将 pandas 导入为 pd

类插件(表):

title = '表格按键排序'

para = { '主要': 无 , '次要' : 无 , '下降' : False }

view = [ ('领域', '主要', '主要', '关键'),

('领域', '次要', '次要', '关键'),

( bool , '下降' , '下降' ) ]

def run( self , tps , data , snap , para = None ) :

by = [ para[ '主要' ] , para[ '次要' ] ]

data.sort_values( by = [ i for i in by if i != 'None' ],

轴 = 0 ,升序 = 不是 para[ 'descend' ] , inplace = True )

图像处理源代码_图像处理软件源码_源码图像处理软件是什么

表排序示例

该表的工作原理

与过滤器一样,表格也有标题、注释、参数和视图等参数。 当插件运行时,框架将根据视图生成一个对话框。 选择paras后,将它们与当前表一起传递给run函数进行处理。 表数据是当前表中的pandas.Dataframe对象,存储在tps中。 还可以从 tps 检索附加信息,例如 tps.rowmsk、tps.colmsk,以获取当前所选表的行和列掩码。

其他类型的插件

上面提到的过滤器和表格是两个最重要的插件,但是 ImagePy 还支持一些其他类型的插件扩展。 目前它支持九个插件,它们是:

Filter:主要用于图像处理;

simple:类似于滤镜,但关注图像的整体特征,例如ROI操作、假色操作、面积测量,或者整个图像的三维分析和可视化等;

free:与图像无关的操作。 用于打开图片、关闭软件等;

工具:使用鼠标在图表上进行交互,并在工具栏上显示画笔等小图标;

table:对表格进行操作,如统计分析、排序、绘图等;

Widget:面板中显示的Widget,如右侧导航栏、宏录制器等;

markdown:标记语言,点击时会弹出单独的窗口显示文档;

宏:用于串行固定操作过程的命令序列文件;

工作流程:结合宏和 Markdown 创建交互式引导流程。

动机和目标

Python是一门简单、优雅、功能强大的语言,它拥有非常丰富的与科学计算相关的第三方库。 一方面,基于numpy的scipy、scikit-image、scikit-learning等科学计算库,基于通用矩阵结构和相应规则,给科学研究带来了极大的便利。 另一方面,通过科学计算和图像处理,越来越多的生物学、材料科学等科学研究问题可以得到高效、准确的解决。

然而,仍然有许多研究人员缺乏编程技能。 因此,让更多的研究人员能够使用基于 numpy 的科学计算库至关重要。 ImagePy使非程序员的研究人员能够使用计算机进行科学计算,因此他们不需要关注UI和交互设计,只需关注算法本身,最终加速开源工具的构建甚至商业产品的孵化。 同时,这些工具让更多不擅长编程的人能够获取、推广和普及图像处理、统计学等科学知识。

相关内容 查看全部