论文实验图片局部放大工具(可批量操作)

1. 背景

在写学术论文时,我们经常会需要对实验效果图片进行局部放大,从而突出和其他方法结果的差异。一般大家的做法可能是在 PPT 上一张一张的去画,但这种方法耗时耗力,而且很难保证所有图片放大区域的位置大小完全相同。为了方便之后画图,分享一个用 Python 的 PyQt5 包制作的交互式的小工具。

代码地址:https://github.com/JuewenPeng/Image_Local_Magnification_Tool

2. 使用方法

下载相应包,运行 main.py 程序,打开 GUI 界面。

  • upload : 上传一张或多张图;上传 checkpoint 文件 (“.json”) 用于恢复之前的参数设置
  • save : 选择保存图片以及参数设置 checkpoint 的文件夹
    • prefix : 添加文件名前缀 (e.g. “mag_” or “”)
    • suffix : 添加文件名后缀 (e.g. “.jpg” or “_mag.jpg”)
  • reset : 重置所有参数
  • resolution-x/y (范围: 128~4096px, 长宽比始终保持): 输出图像的分辨率 (不包括放大框)
  • crop top/bottom/left/down (范围: 0~80%): 上下左右裁剪比例
  • interval-x/y (可负): 图像和放大框的距离 or 相邻放大框的距离 (当放大框数量设置为 1 时,表示相对偏移量)
  • border (可负): 放大框边界和原图边界的距离(为 0 时,两者完全对齐)
  • linewidth : 放大框边界的宽度
  • aspect ratio (范围: 0.2~5.0): 放大框的长宽比
  • magnification (范围: 1.0~10.0): 放大比例
  • number (范围: 0~4): 放大框数量
  • position: 放大框相对原图的摆放位置
  • mag 1/2/3/4 : 点击不同按钮激活不同放大框
  • color 1/2/3/4 (默认颜色或自定义16进制颜色码): 放大框的边界颜色
  • keyboard Esc : 消除所有焦点(取消编辑状态)
  • keyboard Q/E or 鼠标滚轮上/下: 切换图片 (消除焦点状态下)
  • keyboard W/S/A/D : 在原图上微调放大区域的位置 (消除焦点状态下)
  • keyboard 1/2/3/4 : 激活不同放大框 (消除焦点状态下)

在激活了一个放大框之后,可以在右图中用鼠标右键点击需要放大的区域,如果放大区域超出原图范围(基本不会出现),放大框将不显示。

如果大家使用过程中发现有什么 bug 或者有什么其他需求,可以在评论区留言或是在 GitHub 上提问。

Enjoy yourself

$(function(){ $.fn.extend({ SimpleTree:function(options){ //初始化参数 var option = $.extend({ click:function(a){ } },options); option.tree=this; /* 在参数对象中添加对当前菜单树的引用,以便在对象中使用该菜单树 */ option._init=function(){ /* * 初始化菜单展开状态,以及分叉节点的样式 */ this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */ this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */ this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */ this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */ }/* option._init() End */ /* 设置所有超链接不响应单击事件 */ this.find("a").click(function(){ $(this).parent("li").click(); return false; }); /* 菜单项 接受单击 */ this.find("li").click(function(){ /* * 当单击菜单项 * 1.触发用户自定义的单击事件,将该 标签中的第一个超链接做为参数传递过去 * 2.修改当前菜单项所属的子菜单的显示状态(如果等于 true 将其设置为 false,否则将其设置为 true) * 3.重新初始化菜单 */ option.click($(this).find("a")[0]); /* 触发单击 */ /* * 如果当前节点下面包含子菜单,并且其 show 属性的值为 true,则修改其 show 属性为 false * 否则修改其 show 属性为 true */ /* if($(this).next("ul").attr("show")=="true"){ $(this).next("ul").attr("show","false"); }else{ $(this).next("ul").attr("show","true"); }*/ /* 初始化菜单 */ option._init(); }); /* 设置所有父节点样式 */ this.find("ul").prev("li").addClass("folder"); /* 设置节点“是否包含子节点”属性 */ this.find("li").find("a").attr("hasChild",false); this.find("ul").prev("li").find("a").attr("hasChild",true); /* 初始化菜单 */ option._init(); }/* SimpleTree Function End */ }); });
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值