rust的学习笔记

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

0%

参考文献: 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 »

%%%%%%%%%%%% 更新日志 %%%%%%%%%%%%% 2019-10-13 更新:修正之前关于自定义控件的Bind()函数的解释、增加对GUI界面绘制的理解 2019-10-4 更新:增加参数对话框ParaDiglog部分的解析 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参考文献: Demo Plugin ImagePy开发文档 —— 自由引擎 这一篇解析ImagePy的插件的编写规则、运行机理。 ImagePy的自由引擎Free engine解析 在第一篇解析中已提到,ImagePy提前定义了多种引擎,来作为插件的基类,如Filter类作为滤波器基类。这里
Read more »

序言: 本文的成文与ImagePy没有直接关系,但有相当大的间接关系。起因是我在自己的程序中想集成一个可以自由缩放且绘点的画布工具,发现ImagePy的canvas能够很好地满足需求,但无奈ImagePy的源码看不懂,自己想抽离这个canvas也没抽离出来。后经霄龙提醒,发现wxPython的FloatCanvas也有这些基本功能,所以就有了对FloatCanvas和wxPython GDI绘图进行学习的本文。 更让人欣喜的是,在我弄懂了FloatCanvas的用法、且实现一个基础demo之际,霄龙将ImagePy中的canvas迅速剥离了出来,可以单独调用,同时提供了掩膜模式,可以更好地进行
Read more »

参考文献: 多线程threading wxPython Recipes: A Problem - Solution Approach 本篇是对上面这两个参考文章的摘抄学习,第一篇博客介绍了Python怎样多线程编程,第二个是本书,介绍了wxPython怎样多线程编程,实际是在Python多线程编程的基础上开展的。 ImagePy也是这样的多线程编程思路,所以本篇可以作为理解ImagePy的辅助材料。 Python多线程threading 在Python3中,通过threading模块提供线程的功能。原来的thread模块已废弃。但是threading模块中有个Thread类(大写的T,类名
Read more »

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 更新日志: 2019-9-30 更新: 增加了ImageJ和ImagePy两种UI加载方式的对比 以下为正文 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ImagePy的主界面就是名为ImagePy的类,这一部分详解主界面是如何渲染出来的。 父类初始化 ImagePy这个类是继承自wxPython的Frame类,所以首先对这个类进行初始化,包括名称、尺寸、位置、样式等。 1 2 3 wx.Frame.__init__ ( self, parent, id = wx.ID_ANY,
Read more »

参考资料: Windows下配置多个git账号的SSH Key Git的多账号如何处理? 同一台电脑配置多个git账号 有以下两种场景需要进行区分。 多个账号+同一邮箱 对于 Git 而言,邮箱是识别用户的唯一手段。因此如果在不同的代码托管服务商(GitHub、GitLab或Bitbucket)中使用同一邮箱作为账号,此时不需要担心密钥的问题,因为这些网站push pull 认证的唯一性是邮箱。此时只需生成一个通用的私钥和公钥对即可: 1 ssh-keygen -t rsa -C "[email protected]" 此时会在用户目录的.ssh/ 下生成两个文件,id_rsa 是私
Read more »

这一部分详解ImagePy的工具条是如何加载的。 构建工具条入口 通过build_tools这个函数来构建工具条: 1 self.toolbar = toolsloader.build_tools(self, 'tools', 'plugins', None, True) 这几个实参所对应的该函数的形参依次为:tools传入toolpath, plugins传入extends(这个参数目前看没有用处),None传入bar,True赋给report。 下面详细看这个函数做了什么。 递归获得所有工具的类文件和图标文件 上面的build_tools函数又会调用loader的build_
Read more »

在第一部分中已经介绍,ImagePy的插件就是文件,这一篇详细解析ImagePy怎样解析物理文件,然后将其加载到菜单栏中。 主界面构建菜单 首先在主界面中根据路径添加菜单项(插件就是菜单),即逐层遍历’menus’路径下的文件夹和文件,找到特定后缀的文件(比如后缀为”plgs.py”),并添加为菜单项。这是整个插件加载的入口函数。 1 2 3 self.menubar = pluginloader.buildMenuBarByPath(self, 'menus', 'plugins', None, True) self.SetMenuBar( self.menubar ) 下面详
Read more »

Prerequisites Linux系统还是建议选Ubuntu系的,首先是驱动支持得全面,再者是Ubuntu源很给力,安装软件不费劲。 这里选择的Linux发行版是Linux Mint 19,它也是Ubuntu系的,界面比原生的Ubuntu要舒服,且软件源也是用的Ubuntu的。 安装Nvidia GPU驱动 首先确认系统是否有Nvidia GPU驱动: 1 nvidia-smi 如果显示没有驱动的话,则需要下载安装驱动,可以有多种方式安装,最简单的一种是通过Ubuntu或Linux Mint的Driver Manager。打开该管理器,等待更新缓存后,就会有可用的Nvidia驱
Read more »