标签归档:脚本

平面数据点提取脚本

在工作中有时会遇到一些需要从图像中提取数据点的情况。例如文献中展示了图像,却没有给出相应的数据。如果只是定性的比较,不一定需要联系作者索要数据。可以简单地通过一些软件来得到近似的数据。比如老牌的Origin,轻量级的 GetData Graph Digitizer,或者免费的 Graphixy 不过这三个都是Windows下的软件,在Linux/UNIX 和 Mac 下,可以考虑 WebPlotDigitizer ,或者直接使用它的在线版

我是觉得这个功能不难,就用Python 写了一个脚本,使用pynput模块获取鼠标的屏幕位置,总共也就50行左右的代码。原理是用鼠标的屏幕坐标进行归算,所以图片越大,屏幕分辨率越高,获得的数据精度就会越好。做粗略的比较展示足够了,但要发表还是应该老老实实找原作者请求数据。

继续阅读

编辑器SciTE介绍

Editor
虽然已经2020年了,我还是和二十多年前一样,用着老式的文本编辑器撰写程序和文档,然后在命令行下运行调试。对我来说,一个顺手的通用文本编辑器至少应该满足下面几个条件:

  1. 使用能区分O和0,I和l的等宽字体;在这一点上,最常用的中文字体宋体和黑体都不够友好
  2. 支持主流编程语言的语法高亮,可自行增加对小众语言的支持;
  3. 能够显示空格,制表符,换行符等空白字符;
  4. 查找替换支持正则表达式(Regular Expression);
  5. 占用资源小,支持操作GB级大文件;
  6. 支持调用自定义脚本;

在Windows下,我用了很多年的Emeditor,后来工作环境迁移到Linux系统下,用不惯vim和emacs,就一直用SciTE将就。时间一长,也逐渐适应了这个轻巧的工具。它是作为开源编辑器框架Scintilla的示例软件开发的,完成度不高,配置和扩展都不够友好。不过这个框架本身自由度很高。许多著名的轻量编辑器都是基于它开发的,例如Notepad++Geany等。后来随着计算机硬件性能的升级,拥有更多时髦功能的Sublime Text, Atom或者VSCode等编辑器得到了更多的关注。也许SciTE看上去有些过时。但作为一款仅有2M大小的跨平台开源软件,它有着更少的资源占用和更快的响应速度。除了对字符集的识别不那么智能,以及不支持跨行搜索之外,我还真找不到更换它的理由。这里整理了一些使用和配置的经验,方便有一定编程基础的中文用户参考。

继续阅读

Ubuntu下配置触屏笔记本

自苹果公司在2007年发布iPod Touch以来,触控操作迅速席卷了移动领域,成为最流行的交互方式,众多硬件厂商趋之若鹜,触控显示器、触控笔记本层出不穷。而始作俑者苹果公司在这场狂热中压根就没推出过桌面级的屏幕触控设备(ipad就是个娱乐终端)。另一方面,传统的操作系统领域也没有兴起多大波澜。最早有志于统一桌面的Unity已黯然退场;首次支持触控的Windows 8 被市场否定,Windows 10又改回经典界面;软件厂商观望了一阵,看桌面领域没什么赚头,就纷纷开发App去了。人们发现,磨合了三十多年的鼠标键盘工作流并不能简单地被手指替代,哪怕是十指触控。硬件虽好,但缺乏系统和软件的支持也只能做个噱头。

x1yoga 新版Win10针对触控操作做了许多优化,可以为平板提供足够的支持(在Surface Pro上用Drawboard PDF看论文图书还是很有效率的)。相比之下,Linux的体验就不那么友好了。默认的软件和设置完全无法配合平板形态,需要自行设置和优化。我用的Thinkpad X1 Yoga 在 Mint Linux 18.2 下触控屏手指缩放无效,自带的 Wacom 触控笔灵敏度过高,尚未接触屏幕就直接触发点击,笔的按钮也不能触发右键。好在Linux 下的 Wacom 驱动有着相当完善的接口,这些问题都可以通过修改设置解决,这一点可比Surface方便多了。Linux 下 Wacom 驱动的介绍页面是 http://linuxwacom.sourceforge.net/wiki/ , 其中也包括多点触控屏幕的设置。简单来说,需要关闭驱动的手势控制,启用系统的两点控制来实现自带文件、图片、网站等各类浏览器中的手势缩放;修改电磁笔的触发阈值来修正灵敏度。
继续阅读

Python简繁转换

简繁转换的工具很多,但始终没有一个完美的解决方案。由于字符之间从来都不是简单的一一对应,不仅一简对多繁的情况大量存在,多简对一繁也屡见不鲜。情况的复杂性由下面几例可见一斑:

头发发展 -> 頭髮發展
萝卜卜卦 -> 蘿蔔卜卦
秒表表达 -> 秒錶表達
晾干乾坤 -> 晾乾乾坤

要正确完成这样的转换,就要在单字对应关系之外加上词组对应。这一点无论Google 翻译,MS Word 或者ConvertZ 基本都可以做到(虚词部分可能稍微困难些)。但两岸相差的不只是字形,还有名称叫法。这一点嘻来嚷往最早的一篇文章中讲的很清楚。转引一个例子:“大衛碧咸在寮國見到了布希”。我第一次看到时完全不知所谓,虽然认得每一个字,还是猜不到这就是“大卫·贝克汉姆在老挝见到了布什”的香港版。要想正确转换这样的句子,就要建立更广泛的简繁词组对照表。也许你会觉得这已经超出了字体转换的范畴,开始接近自动翻译了。但从技术的角度上讲,把“软件”对应为“軟件”,”軟體” 或者 “ruan jian”并没有什么不同,前提是要有一个完善的转换语料库。当然这个前提并不容易满足,因为“所有的规则都有例外“。
继续阅读

python换桌面脚本2.0

原来发过一个Python下的换桌面脚本,由于相关网站改版,脚本失效.。我也相应更新一下。移除了图片质量一般的EPOD。充分测试了windows(XP) 和 linux(Ubuntu gnome)双平台. 同时将原有的拉伸全屏模式,更改为保持长宽比的居中模式(其他模式的使用参数也已写在注释中)。 对于APOD,可以手动指定更新任意一天的图片(只支持JPG), 而NGPOD的网站地址与时间无关,只能获取最新图片。下载前会检查文件名,如果图片已经存在,则自动跳过。默认下载大图,然后根据设定分辨率生成桌面图片。各项参数要在源码中自行调整。仍需要PIL模块支持,这个模块的详细介绍可以看这里。新脚本点此下载
继续阅读