ImagePy——UI界面支持开放插件的Python开源图像处理框架

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ImagePy 是一款基于 imagej 等插件的图像处理框架,它可以与 scipy.ndimage、scikit-image、opencv、simpleitk、mayavi 以及任何基于 numpy 的库进行组合使用,其地址为 http://imagepy.org。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

简介

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

概览,鼠标测量,几何变换,过滤,分割,计数等

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果你更喜欢 IJ 样式,请尝试使用「 Windows -> Windows Style 」来切换

更多Python视频、源码、资料加群683380553免费获取

ImagePy:

  • 具有用户友好的界面;
  • 可以读取/保存各种格式的图像数据;
  • 支持 ROI 设置、绘图、测量和其他鼠标操作;
  • 可以执行图像滤波、形态学操作和其他常规操作;
  • 可以进行图像分割、区域计数、几何测量和密度分析;
  • 能够对从图像中提取的参数进行相关的数据分析、滤波、统计分析等。

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

地址:

https://academic.oup.com/bioinformatics/article-abstract/34/18/3238/4989871?redirectedFrom=fulltext

安装:

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

  1. ImagePy 是一个基于 wxpython 的 ui 框架,它不能在 linux 上用 pip 进行安装。你需要下载和你的 linux 系统相匹配的 whl文件。
  2. 因为 ImagePy 会编写一些配置信息,因此,在 linux 和 mac 系统上,可能会存在权限问题,所以请从 sudo 命令开始。如果使用 pip 安装,请按照下面的方法来添加用户参数:pipsinstall–user imagepy。
  3. 如果在 anaconda 虚拟环境中安装 ImagePy,那么你可能会遇到这样的错误:这个程序需要屏幕访问权限。请使用 python 构建的框架来运行,并且只有在你已经登录到主显示器上时才这样做,如果遇到这个问题,请从 pythonw-m 镜像开始。

基本操作:

ImagePy 有一组非常丰富的特性,在这里,我们使用一个具体的示例向你展示 ImagePy 的这些特性。我们选择官方使用 scikit-image 来分割硬币的例子,因为这个例子简单而全面。

打开图像

菜单打开:file -> local samples -> coins,来打开 ImagePy 中的示例图像。ps:ImagePy 支持 bmp、jpg、png、gif、tif 和其他常用的文件格式。通过安装 ITK 插件,还可以读取/保存 dicom、nii 和其他格式的医学图像。如果安装了 opencv,还可以读/写 wmv、avi 和其他格式的视频。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

硬币

过滤与分割

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Up And Down Watershed 分割

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

掩模

二值化

菜单打开:process -> binary -> binary fill holes

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

填洞

几何滤波

菜单打开:analysis -> region analysis -> geometry filter

ImagePy 可以根据面积、周长、拓扑、稳定性和离心率等参数进行几何滤波。还可以使用多个条件进行筛选。每个数字可以是正的(或者负的),这表示所保存的对象的相应参数分别大于(或者小于)相对值。保存的对象将被设置为前色,拒绝的对象将被设置为背景色。在这个演示中,背景颜色设置为 100,以便查看有哪些对象被过滤掉了。一旦对结果满意,就将背景色设置为 0。此外,ImagePy 还支持灰度密度滤波、颜色滤波、颜色聚类等功能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

几何滤波

几何分析

菜单打开:process -> region analysis -> geometry analysis count,计算面积并分析参数。通过选择 cov 选项,ImagePy 使用通过协方差计算的椭圆拟合每个区域。这里计算前面步骤中所示的参数,如面积、周长、离心率和稳定性。事实上,前一步的滤波正是对这一步的准备。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

几何分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

按区域对表进行排序

菜单打开:table -> statistic -> table sort by key

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图表

菜单打开:table -> chart -> hist chart

我们经常需要利用表格数据来绘制一个图表。这里,我们绘制了某个区域和其周边列的直方图。ImagePy 的表可以用于绘制常见的图表,如柱状图、饼图、直方图和散点图(基于 matplotlib)。该图表带有缩放、移动和其他功能,并可以保存为图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

直方图

3D 表格

菜单打开:kit3d -> viewer 3d -> 2d surface

图像的表面重建。这幅图像显示了三种方式的重建结果,包括:sobel 梯度图、高阈值和低阈值。它显示了 Up And Down Watershed 是如何工作的:

  • 计算梯度;
  • 通过高低阈值标记硬币和背景;
  • 在 dem 图表上模拟上升 water 来形成分割线。

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3d 可视化

宏记录和执行

菜单打开:window -> develop tool suite

宏记录器显示在开发工具面板中。我们已经手动完成了一个图像的分割。然而,用这种方式一下子处理超过 10 幅图像是非常乏味的。因此,假设在处理这些问题的时候,这些步骤具有高度的可重复性和健壮性,我们可以记录一个宏,以便将几个处理过程组合成一个单击程序。宏记录器与无线电记录器相似。打开后,它将记录操作的每个步骤。我们可以点击暂停按钮停止录制,也可以点击播放按钮开始录制。当宏运行时,所记录的命令将按照顺序执行,因此它具有简单性和可再现性。

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

宏记录

Workflow

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

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

Title=====

## Chapter1

  1. Section1some coment for section1 …

## Chapter 2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

workflow

滤波器插件

在最后一节中,我们介绍了宏和 workflow,使用宏和 workflow 连接现有功能很方便。但有时我们需要创建新的特性。在本节中,我们将尝试向 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’ ) ]

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

para[ ‘low_threshold’ ] ,

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值