A multi-image viewer that can open multiple images in one interface, which is convenient for image comparison and image stitching.
Project description
MulimgViewer
English readme (Thanks @Faberman for the translation and polishing.)
1. 介绍
MulimgViewer多图像浏览器,在一个界面显示多个图像,方便图像的比较、筛选。
软件功能: 多路径并行显示、多框并行放大 (more)。
您的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 License:https://www.gnu.org/licenses/gpl-3.0.en.html
额外条款
- 允许个人使用
- 商业使用请联系 - liujiawei18@mails.ucas.ac.cn.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mulimgviewer-3.9.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 921f6e7e881510bbc67ad97304975c3a463060e7dd7944f54cc74be0cccba273 |
|
MD5 | cfcef588e76a4976b37eb3d2d67ab5be |
|
BLAKE2b-256 | eda533ed1c7133691400c5b1eff30e851c123119c3d1d19e8bc3c7a510686d47 |