数字旗手

电气化、自动化、数字化、智能化、智慧化

0%

源码在:这里 还有一篇参考文献:局部极值提取算法 图像准备 首先创建一张10 pixels乘以10 pixels的背底黑色、中间白色的图像,如下图所示(下图仅是为了显示,实际图像是100个像素的面积大小,这样是为了后面显示像素矩阵时更方便): 然后上面这张图像不能直接传入findmax脚本中,实际用到的是它的距离变换图(注意将这张图的显示范围调整为0-3,因为面积很小,所以距离很近,如果正常0-255显示则就是一片黑色): 这张图像的像素矩阵就是: 1 2 3 4 5 6 7 8 9 10 [[0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0]
Read more »

参考文献: ImagePy开发文档 —— 宏引擎 Macros 插件 Macros 是一个宏执行器引擎,它负责将一串 ImagePy 命令依次执行。 事实上我们几乎不会去继承 Macros,它仅仅是 ImagePy 为了实现宏功能,并统一为一种引擎接口而设计的辅助类。 因此,Macros引擎常见的用法是:首先通过宏录制器来完成记录,宏录制器在Plugins > Macros> Macros Recorder, 然后将录制的命令保存到menus或其子文件夹里,以mc作为后缀,重启即可加载到对应位置。(语出上面的参考文献) Macros引擎 先来看一下Macros类的全貌: 1 2 3 4 5
Read more »

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2020-9-5 更新: 加入draw_image()和mix_img()方法的详解 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 前面系列文已经提到,ImagePy的画布Canvas类已经被抽象出来,可以被单独使用。 本节就对该类做一个详细解析:因为Canvas类又调用了同一路径下的boxutil和imutil,所以本文的思路是先整体介绍它的运行机理,然后具体到某一功能时可以再详细查看下方的详细解释,这样不至于迷失在代码中。。 该类的源码地址在这里。 画布Canvas运行机理 总体看一下它的调
Read more »

参考文献: Computation on Arrays: Broadcasting Indexing 本文就是对上面两篇参考文献的翻译理解。 广播Broadcasting 广播的原则: (1)如果两个数组的形状不同,那么形状小的那个数组填充成另一个数组的形状(注意是用形状1来向左填充,具体见下方示例)。 (2)如果两个数组的形状相同,但某一维度上数目不匹配,那么在这一维度上形状为1的数组扩展成另一个数组的形状。 (3)如果两个数组的形状相同,在某一维度上数目不匹配,但在这一维度上形状都不为1,那么报错。 Example 1 我们想把下面两个数组相加: 1 2 M = np.ones(
Read more »

本文是对《wxPython in Action》一书的第6.1节和第12.2节的翻译理解。 ImagePy很多的组件都用到了wxPython的设备上下文进行绘制,比如histogram panel、curve panel、colormap panel和Canvas等。可以说,对于wxPython不提供的组件,ImagePy都通过DC绘制进行了自己开发,因此这一部分对于理解ImagePy的UI交互会很有帮助。 wxPython设备上下文 为了能在屏幕上绘图,需要使用wxPython的称为设备上下文Device Context的对象,它能对显示设备进行抽象,给予每个设备一套通用的绘图方法,这样一
Read more »

看到一篇非常好的讲解Python星号变量的用法,特转载之。 来自:晴刃(QingSword.COM) 原文连接:http://www.qingsword.com/qing/python-12.html 引言 在Python中,星号除了用于乘法数值运算和幂运算外,还有一种特殊的用法”在变量前添加单个星号或两个星号”,实现多参数的传入或变量的拆解,本文将详细介绍”星号参数”的用法。 0×1.什么是星号变量 最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的b位置上将其转化成元组,而双星号代表这个位置接收任意多个关键字参数,在*b位置上
Read more »

参考文献: Python 的 import 机制 Python 相对导入与绝对导入 python: __main__ is not a package Python import的搜索路径 import的搜索路径为: 1. 搜索「内置模块」(built-in module) 2. 搜索 sys.path 中的路径 而sys.path在初始化时,又会按照顺序添加以下路径: 1. foo.py 所在目录(如果是软链接,那么是真正的 foo.py 所在目录)或当前目录; 2. 环境变量 PYTHONPATH中列出的目录(类似环境变量 PATH,由用户定义,默认为空); 3. sit
Read more »

参考文献: ImagePy开发文档 —— 工具 Tool 插件 Filter、Simple 都可以处理图像,但有时候我们需要用鼠标交互对图像进行一些操作。比如我们的选区操作,绘图操作等。ImagePlus 被绘制在一个 Canvas 上,Canvas 是 wxpython 的 Panel 子类,当然我们可以对其添加鼠标事件,但我们并不推荐这样做,原因之一是这样做比较繁琐,其次,多工具同时注册事件,会引起管理混乱和事件冲突。(语出上面的参考文献) 这一篇来解析一下Tool引擎,先分析一下这个基类,然后通过基于它编写的画笔工具深入理解。 注意,Tool引擎与前面的Free、Filter等交互逻辑
Read more »

参考文献: Filter 插件 ImagePy开发文档 —— 滤波器引擎 Filter引擎是最重要的一类插件,用于对二维图像进行滤波,也是图像处理中最基础、最普遍的一类应用(语出上面的参考文献)。 这一篇分析Filter引擎的功能,并通过基于它所编写的图像取反插件来深入理解。 Filter引擎 Filter引擎的基本类结构如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Filter: title = 'Filter' modal = True note = [] para, vie
Read more »

%%%%% 更新日志 %%%%% 2019-10-11更新:增加ImageManager管理器解析 %%%%%%%%%%%%%%%%%%%% 参考文献: 创建图像 ImagePy开发文档 —— 常用汇总 ImagePy开发文档 —— 图像封装类 新建图像的插件 最简单的新建图像的插件代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from imagepy.core.engine import Free from imagepy import IPy import numpy as np class Plugin(Free): title = 'N
Read more »