一个可以在一个界面中打开多个图像的多图像查看器,便于图像比较和图像拼接。
项目描述
MulimgViewer
1. 简介
MulimgViewer多图像浏览器,在一个界面显示多个图像,方便图像的比较、筛选。
软件功能: 多路径并行显示、多框并行放大 (更多)。
您的star是我开发完善该项目最大的支持! qq交流群:945669929
2. Windows-10
- 直接下载并运行exe文件;或者下载源码运行
MulimgViewer.py->源码运行 - v3.9.3以后,
Windows 10提供安装版_Setup.exe和便携版_Portable.exe(安装版_Setup.exe启动速度更快)
3. python源码运行(windows\linux\ios)
- 目前仅提供
Windows 10的安装包(amd64) - 其他环境可以使用源码运行,安装环境使用以下两种方式都行(pip or conda)
- 建议使用Python3.6以上
- 最新源码下载
3.1 pip安装
pip安装:(如果安装过程出错,可以使用conda安装)
pip install wxpython pillow pytest-shutil numpy requests piexif
运行:
python3 MulimgViewer.py
3.2 conda安装
或者安装conda环境:
conda env create -f install.yaml
运行:
conda activate mulimgviewer
python MulimgViewer.py
4. 应用场景
例1:多图像浏览
浏览202,599张图片的数据库CelebA,需要多长时间?一次显示1000张,只需点击200多次即可完成!
例2:并行挑选
以前你可能需要在多个窗口打开多个图像,逐个对比,再到文件夹找到对应的图像,复制到别的地方。
现在使用MulimgViewer多图像浏览器,输入各个需要对比的目录,一键保存需要对比的多张图像到本地!
图片并行挑选:Parallel auto or Parallel manual,关闭Parallel+Sequential(默认使用复制,选中MoveFile为剪切)。
例3:并行放大
MulimgViewer可以轻松的完成纵向与横向的拼接,支持自动拼接保存,支持并行放大!
同时支持任意位置划框(鼠标左键按住移动),多框并行放大(鼠标右键点击,生成新的框)。详细见
例4:成对数据浏览
MulimgViewer可以方便的进行成对的数据的浏览、比较。详细见
例5:一键生成论文对比图
支持显示标题,调整放大框的位置。放大框的位置选择middle bottom,建议🔍️Scale=-1,-1;如果选择其他位置,自行调节放大倍数,例如:🔍️Scale=1.5,1.5。详细见
显示半张图像。勾选OneImg,使用NumPerimg控制几张图像合成一张图像。Gap(x,y)=*,*,0,*,*消除间距。
例6:支持远程挂载目录图片浏览
将远程服务器的目录挂载后,在MulimgViewer中选择目录即可,完成图片浏览。
- Ubuntu: 使用ubuntu的文件管理器
nautilus,stfp://10.8.0.4连接到服务器。
- win10: 安装WinFsp和SSHFS-Win之后,文件资源管理器中填写远程服务器ip,例如:
\\sshfs\user@ip!port
例7:支持点按旋转
显示多张图片的同时,鼠标左键点击即可完成图片旋转。
例8:批量化resize图片
利用自动保存功能,可以实现批量化resize图片。 操作:
- 输入模式选择:Sequential,选择输入文件夹
- 选择保存文件的输出目录
- 勾选自动保存
AutoSaveAll - 设置
TruthResolution为固定的大小,例如:256,256 - 点击保存💾️
5. 使用说明
5.1 快捷栏
5.2 操作流程
测试图像下载地址:https://raw.githubusercontent.com/nachifur/MulimgViewer/master/img/test_img.zip
注意:本软件不支持自动刷新,修改布局参数之后,需要手动刷新(Ctrl+R)。
-
在
Layout中填写布局参数:Row(一行有几张图片),NumPerImg(一个图片由几个子图片组成),Col(一列有几个图片)。 -
选择输入模式
2.1 Sequential: 一个文件夹多张图片。(
test_input/01)2.2 Parallel auto: 一个文件夹多个子文件夹。一个文件夹下有n个子文件夹,子文件夹中为图片。 (
test_input/)2.3 Parallel manual: 手动选择多个子文件夹。(
test_input//01+test_input//02)2.4 Image file list: 从文件导入图片列表文件。(Demo file)
-
打开文件夹,导入路径
-
这时图片显示在面板,可以使用
>查看下一张,<查看上一张图片 -
Input/OutPut->OutputMode, 选择输出模式 -
File->Select output path, 选择输出的路径。 -
点击保存💾️
5.3 快捷键
-
输入路径:
Sequential: Ctrl+E
Parallel auto: Ctrl+A
Parallel manual: Ctrl+M
Image file list: Ctrl+F
-
输出路径:Ctrl+O
-
下一张:Ctrl+N
-
上一张Ctrl+L
-
保存:Ctrl+S
-
刷新:Ctrl+R (或者鼠标右键)
-
隐藏工具栏:Ctrl+H
-
使用键盘的上下左右,可以移动图像面板里的图像。
5.4 功能介绍
5.4.1 输入模式
Sequential是串行浏览模式,一个文件夹下有不同的图片,命名不同,用于图片的拼接。
Parallel auto和Parallel manual是并行浏览模式(子文件夹的名称不一样),需要确保各子文件夹下面的图片命名相同,用于不同图片的对比。
Image File List是自定义模式,从txt, csv文件导入图片列表。支持csv文件多行多列显示。
如果需要自动排布,NumPerImg设为-1。
5.4.2 输出模式
Stitch: 将拼接的图像保存到stitch_images目录下
Select: 分别保存当前浏览的图像到不同的文件夹,默认为copy模式,选中MoveFile为剪切模式。(推荐的输入模式为Parallel auto或Parallel manual,关闭Parallel+Sequential和Parallel->Sequential)
Magnifer: 单独保存放大图像,方便用户的后期处理。
5.4.3 图像排列自动化
默认:NumPerImg = -1,这时为程序自动布局模式。NumPerImg 的意思是几张图像合成一个图像。
当NumPerImg = 1或者>1,图像布局为手动模式,这时可以调整 Row 和 Col。
5.4.4. 并行模式下的串行显示
在Parallel auto和Parallel manual模式下,可以并行显示多个文件夹。
Parallel+Sequential:
选中Parallel+Sequential,在并行显示的同时,可以串行浏览每个文件夹中的前n张图片,n可由NumPerImg设定。例如:Row=5 ,NumPerImg=4, Col=1, 一次分别读取5个并行目录的4张图片,共20张。Vertical可以调整串行方向。修改Row和Col, 可以控制并行文件夹的二维排布。
Parallel->Sequential: 将多个文件夹的所有图片,拼接成一个图片列表进行串行显示。
在Parallel+Sequential模式下,各个子文件夹下的文件名称需要一样。在Parallel->Sequential模式下,则不需要。
5.4.5 自动保存
勾选自动保存AutoSaveAll,点击保存💾️,实现批量化操作。
5.4.6 图像尺寸归一化
Fill: 图像尺寸为一组图像中的最大尺寸,填充模式(保持原始像素分辨率)
Crop: 图像尺寸为一组图像中的最小尺寸,裁剪模式(保持原始像素分辨率)
Resize: 图像尺寸为一组图像中的平均尺寸,缩放模式(不保持原始像素分辨率)
5.4.7 图像间隔
5.4.8 图像填充
支持多种颜色填充。支持背景填充透明。同时支持前景透明度调节。
5.4.9 并行手动模式支持路径导入保存
5.4.10 显示、输出尺寸独立
此功能可以保证显示的scale与输出独立。
应用场景:
- 同时浏览显示100张图像,屏幕放不下,使用
Scale:Show缩放即可 - 100张拼接造成的保存图片很大,使用
Scale:Out可以方便控制文件大小
5.4.11 并行放大
操作:
- 点击放大按钮
🔍️
- 鼠标变为十字光标,在任意图片位置划框
- 选择放大区域:按住鼠标左键,移动鼠标,释放鼠标左键,显示放大结果
- 新增放大框:鼠标右键,实现多框放大
Tip:
- 开启
🔍️KeepSize,即可获得与原始图片长宽比一样的放大结果。 🔍️Scale,默认为-1,1,自动设置scale。- 可以选中
Vertical,Crtl+R刷新显示,放大图像放置在原图的右侧。 🔍️Scale,支持自定义倍数放大,最大不超过原图尺寸。例如:3,3,长宽3倍的放大。Box:Width设为2,3。原图中的线宽是2,放大图中的线宽是3。Box:Width设为0,0,即可隐藏框。Box:Width单位为pixel,在所有缩放下线宽保持不变。如果在Scale:Show为0.1,0.1,Scale:Out为1,1时,显示的框的宽度合适,那么输出框的宽度可能相比图片尺寸偏小。- 点击放大按钮
🔍️之后,鼠标单击图片选中,然后使用ctrl+鼠标滚轮全局缩放图像。 - 鼠标滚轮缩放功能,使用缩放因子控制。每次手动设置
Scale:Show为1,1,缩放因子清零,界面刷新。
移动box:
(注意:开启Box:SelectBox后,使用鼠标左键不能划框)
- 选中
Box:SelectBox - 鼠标左键单击,选中已有的放大框
- 然后使用键盘上下左右(或者鼠标滚轮),微调放大框(按
shift键可以改变速度)。使用鼠标右键,快速移动放大框。 - 关闭
Box:SelectBox。
清除放大框:
方法1:
- 选中
Box:SelectBox,键盘Del,删除特定box - 关闭
Box:SelectBox,键盘Del,删除所有box
方法2:
- 关闭
Box:SelectBox - 鼠标左键双击图片
Ctrl+R刷新显示。
手动修改放大框的颜色:
- 选中
Box:SelectBox - 在原图片上,鼠标左键选中某个框
- 鼠标左键单击
Color/transparency:Draw,选择颜色
不显示box/框:
- 不选中
Box:InBox,去掉原始图片上的框 - 不选中
Box:In🔍️,去掉放大图片上的框 - 不选中
ShowImg,不显示原始图片 - 不选中
Show🔍️,不显示放大图片
5.4.12 窗口大小自动化调节
开启AutoWinSize,即可实现窗口自动大小调节。
5.4.13 浏览图片,精确定位
粗定位: 移动slider。
精确定位:
Help->Index table- 查看图片显示序号
- 输入序号,回车
5.4.14 标题
标题
- 关闭
Title:Auto之后,可以进行自定义显示标题 - 在
Sequential输入模式下,文件名为01_DSC.jpg,不选中Prefix和Suffix,文件显示为DSC。使用数字可以对图片文件进行排序。
字体
- 建议使用安装版
_Setup.exe - 将字体
1_Calibri-Light.ttf复制到安装目录C:\Program Files (x86)\MulimgViewer\font\using下 1_Calibri-Light.ttf中的数字越小,GUI中的字体排序靠前
6. 注意事项以及使用技巧
6.1 并行模式
- 使用多图浏览模式(Parallel manual和Parallel auto),对比的文件夹里面的图像命名需要一样!
- 子文件夹的命名。如果是0,1,2...10,11,需要改为00,01,02,...10,11。因为排序时会变为:0,1,10,11,2...
文件重命名工具推荐:
win10: uTools
Ubuntu
- purrr.
sudo apt install purrr- Thunar - Bulk Rename Files.
sudo apt install thunar
6.2 多图拼接,超大像素图片,窗口大小问题
- 关闭
AutoWinSize,最大化窗口 - 调节
Scale:Show,0.2,0.2缩小,2,2放大 - 更改
TruthResolution,将所有照片resize到同一尺寸,对于浏览及其友好
7. 未来增强功能
感谢各位提供意见!大家可以在issues中发表意见,采用的会致谢大家!如果大家希望可以和我一起合作开发,请联系我!
- 增加精确定位(目前已经有slider)
- 增加图片索引查看,方便进行精确定位
- 并行的局部放大功能(用于论文中的对比实验图片急需!)
- 输入方式,新增:路径文件的导入和存储(@nothingeasy提供改进意见)
- 增加删除功能(完善筛选功能)
- 保存带框的原始图像(@JuZiSYJ提供改进意见)
- 拼图过程中,点击可旋转图片
- 多框放大功能(@JuZiSYJ提供改进意见)
- 去除放大图像的box(@stefanklut提供改进意见)
- 高清图像的对比,放大图像1:1输出(@Faberman提供改进意见)
- 为图像添加titile(@Faberman提供改进意见)
8. 致谢
- Everyone in the QQ group;
- nothingeasy:改进意见-(输入方式,新增:路径文件的导入和存储);
- JuZiSYJ:改进意见-(保存带框的原始图像+并行放大);
- Faberman:改进意见-(为图像添加titile+放大图像1:1输出);
- stefanklut:改进意见-(不显示放大图像的边界框);
- FunkyKoki:改进意见-(显示一半的图像+新增放大图像排布方式).
9. 引用
如果您在研究中使用此项目,请使用以下BibTeX条目。
@software{MulimgViewer,
author = {Liu, Jiawei},
license = {GPL-3},
title = {{MulimgViewer: A multi-image viewer for image comparison and image stitching}},
url = {https://github.com/nachifur/MulimgViewer}
}
10. 使用条款
许可证
GPL-3.0 许可证:https://gnu.ac.cn/licenses/gpl-3.0.en.html
额外条款
- 允许个人使用
- 商业使用请联系 - liujiawei18@mails.ucas.ac.cn.
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
mulimgviewer-3.9.10.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b2b060a27effcab6ef57a9b4126ebb8a203528ba3a6f641326337bf3a6d921c9 |
|
| MD5 | a41ed17a26cc242c7f22073d9b004b1b |
|
| BLAKE2b-256 | dc041074af1402e277cd3557c4596813966e1566f11fe2e859332f9a62fe0e05 |
mulimgviewer-3.9.10-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e0c21750af6565e4358f211d900c39399cbd09b6f7d7435ca931dc47d81efba1 |
|
| MD5 | ff9afb5b78e9923551acc7f0b272a5f9 |
|
| BLAKE2b-256 | 307c7ca9b111e299c28811bff2cd5fd185170859d9344d3005a52dba256e063d |