English readme (Thanks @Faberman for the translation and polishing.)
MulimgViewer多图像浏览器,在一个界面显示多个图像,方便图像的比较、筛选。
功能
- 多路径并行显示
- 多框并行放大
- 点按旋转
- 支持远程目录
- 批量化resize图片
下载地址:
- 稳定版(package+code): https://github.com/nachifur/MulimgViewer/releases
- 最新(code): https://codeload.github.com/nachifur/MulimgViewer/zip/refs/heads/master
您的star是我开发完善该项目最大的支持! qq交流群:945669929
v3.9.1以后仅提供Windows 10
的包(amd64
)。其他环境可以使用源码运行。建议使用Python3.6以上。
pip安装:(如果安装过程出错,可以使用conda安装)
pip install wxpython pillow pytest-shutil numpy
运行:
python3 MulimgViewer.py
直接运行exe文件。也可以下载源码运行MulimgViewer.py
。
v3.9.3以后,Windows 10
提供安装版_Setup.exe
和便携版_Portable.exe
(安装版_Setup.exe
启动速度更快)。
浏览202,599张图片的数据库CelebA,需要多长时间?一次显示1000张,只需点击200多次即可完成!
以前你可能需要在多个窗口打开多个图像,逐个对比,再到文件夹找到对应的图像,复制到别的地方。
现在使用MulimgViewer多图像浏览器,输入各个需要对比的目录,一键保存需要对比的多张图像到本地!
图片并行挑选:Parallel auto
or Parallel manual
,关闭Parallel+Sequential
(默认使用复制,选中MoveFile
为剪切)。
MulimgViewer可以轻松的完成纵向与横向的拼接,支持自动拼接保存,支持并行放大!
同时支持任意位置划框(鼠标左键按住移动),多框并行放大(鼠标右键点击,生成新的框)。详细见
MulimgViewer可以方便的进行成对的数据的浏览、比较。详细见
支持显示标题,调整放大框的位置。放大框的位置选择middle bottom
,建议🔍️Scale=-1,-1
;如果选择其他位置,自行调节放大倍数,例如:🔍️Scale=1.5,1.5
。详细见
显示半张图像。使用NumPerimg
控制几张图像合成一张图像。Gap(x,y)=*,*,0,*,*
消除间距。
将远程服务器的目录挂载后,在MulimgViewer中选择目录即可,完成图片浏览。
- Ubuntu: 使用ubuntu的文件管理器
nautilus
,stfp://10.8.0.4连接到服务器。
- win10: 安装WinFsp和SSHFS-Win之后,文件资源管理器中填写远程服务器ip,例如:
\\sshfs\user@ip!port
显示多张图片的同时,鼠标左键点击即可完成图片旋转。
利用自动保存功能,可以实现批量化resize图片。 操作:
- 输入模式选择:Sequential,选择输入文件夹
- 选择保存文件的输出目录
- 勾选自动保存
AutoSaveAll
- 设置
TruthResolution
为固定的大小,例如:256,256
- 点击保存💾️
测试图像下载地址:https://github.com/nachifur/MulimgViewer/blob/master/img/test_img.zip
-
在
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: 从文件导入图片列表文件。(Sample file)
-
打开文件夹,导入路径
-
这时图片显示在面板,可以使用
>
查看下一张,<
查看上一张图片 -
Input/OutPut
->OutputMode, 选择输出模式 -
File->Select output path
, 选择输出的路径。 -
点击保存💾️
-
输入路径:
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
-
使用键盘的上下左右,可以移动图像面板里的图像。
Sequential
是串行浏览模式,一个文件夹下有不同的图片,命名不同,用于图片的拼接。
Parallel auto
和Parallel manual
是并行浏览模式(子文件夹的名称不一样),需要确保各子文件夹下面的图片命名相同,用于不同图片的对比。
Image File List
是自定义模式,从txt, csv文件导入图片列表。支持csv文件多行多列显示。
如果需要自动排布,NumPerImg
设为-1。
Stitch: 将拼接的图像保存到stitch_images目录下
Select: 分别保存当前浏览的图像到不同的文件夹,默认为copy模式,选中MoveFile
为剪切模式。(推荐的输入模式为Parallel auto
或Parallel manual
,关闭Parallel+Sequential
和Parallel->Sequential
)
Magnifer: 单独保存放大图像,方便用户的后期处理。
默认:NumPerImg
= -1,这时为程序自动布局模式。NumPerImg
的意思是几张图像合成一个图像。
当NumPerImg
= 1或者>1,图像布局为手动模式,这时可以调整 Row
和 Col
。
在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
模式下,则不需要。
勾选自动保存AutoSaveAll
,点击保存💾️,实现批量化操作。
Fill: 图像尺寸为一组图像中的最大尺寸,填充模式(保持原始像素分辨率)
Crop: 图像尺寸为一组图像中的最小尺寸,裁剪模式(保持原始像素分辨率)
Resize: 图像尺寸为一组图像中的平均尺寸,缩放模式(不保持原始像素分辨率)
支持多种颜色填充。支持背景填充透明。同时支持前景透明度调节。
此功能可以保证显示的scale与输出独立。
应用场景:
- 同时浏览显示100张图像,屏幕放不下,使用
Scale:Show
缩放即可 - 100张拼接造成的保存图片很大,使用
Scale:Out
可以方便控制文件大小
操作:
- 点击放大按钮
🔍️
- 鼠标变为十字光标,在任意图片位置划框
- 选择放大区域:按住鼠标左键,移动鼠标,释放鼠标左键,显示放大结果
- 新增放大框:鼠标右键,实现多框放大
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
回车之后,缩放因子清零,界面刷新。
移动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🔍️
,不显示放大图片
开启AutoWinSize
,即可实现窗口自动大小调节。
粗定位: 移动slider。
精确定位:
Help
->Index table
- 查看图片显示序号
- 输入序号,回车
标题
- 关闭
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中的字体排序靠前
- 使用多图浏览模式(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
- 关闭
AutoWinSize
,最大化窗口 - 调节
Scale:Show
,0.2,0.2
缩小,2,2
放大 - 更改
TruthResolution
,将所有照片resize到同一尺寸,对于浏览及其友好
感谢各位提供意见!大家可以在issues中发表意见,采用的会致谢大家!如果大家希望可以和我一起合作开发,请联系我!
- 增加精确定位(目前已经有slider)
- 增加图片索引查看,方便进行精确定位
- 并行的局部放大功能(用于论文中的对比实验图片急需!)
- 输入方式,新增:路径文件的导入和存储(@nothingeasy提供改进意见)
- 增加删除功能(完善筛选功能)
- 保存带框的原始图像(@JuZiSYJ提供改进意见)
- 拼图过程中,点击可旋转图片
- 多框放大功能(@JuZiSYJ提供改进意见)
- 去除放大图像的box(@stefanklut提供改进意见)
- 高清图像的对比,放大图像1:1输出(@Faberman提供改进意见)
- 为图像添加titile(@Faberman提供改进意见)
- Everyone in the QQ group;
- nothingeasy:改进意见-(输入方式,新增:路径文件的导入和存储);
- JuZiSYJ:改进意见-(保存带框的原始图像+并行放大);
- Faberman:改进意见-(为图像添加titile+放大图像1:1输出);
- stefanklut:改进意见-(不显示放大图像的边界框);
- FunkyKoki:改进意见-(显示一半的图像+新增放大图像排布方式).
如果您在研究中使用此项目,请使用以下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}
}
许可证
GPL-3.0 License:https://www.gnu.org/licenses/gpl-3.0.en.html
额外条款
- 允许个人使用
- 商业使用请联系 - liujiawei18@mails.ucas.ac.cn.