/MulimgViewer

MulimgViewer is a multi-image viewer that can open multiple images in one interface, which is convenient for image comparison and image stitching.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

multiple images viewer

GitHub stars All releases

MulimgViewer

English readme (Thanks @Faberman for the translation and polishing.)

国内gitee镜像项目

1. 介绍

MulimgViewer多图像浏览器,在一个界面显示多个图像,方便图像的比较、筛选。

功能

  • 多路径并行显示
  • 多框并行放大
  • 点按旋转
  • 支持远程目录
  • 批量化resize图片

image

下载地址:https://github.com/nachifur/MulimgViewer/releases

测试图像地址:https://github.com/nachifur/MulimgViewer/blob/master/img/test_img.zip

您的star是我开发完善该项目最大的支持! qq交流群:945669929

2. python源码运行

v3.9.1以后仅提供Windows 10的包(amd64)。其他环境可以使用源码运行。建议使用Python3.6以上。

pip安装:(如果安装过程出错,可以使用conda安装)

pip install wxpython pillow pytest-shutil numpy

运行:

python3 MulimgViewer.py

3. Windows-10

直接运行exe文件。也可以下载源码运行MulimgViewer.py

v3.9.3以后,Windows 10提供安装版_Setup.exe和便携版_Portable.exe(安装版_Setup.exe启动速度更快)。

4. 应用场景

例1:多图像浏览

浏览202,599张图片的数据库CelebA,需要多长时间?一次显示1000张,只需点击200多次即可完成!详细见 image

例2:并行挑选

以前你可能需要在多个窗口打开多个图像,逐个对比,再到文件夹找到对应的图像,复制到别的地方。

现在使用MulimgViewer多图像浏览器,输入各个需要对比的目录,一键保存需要对比的多张图像到本地

image

图片并行挑选:Parallel auto or Parallel manual,关闭Parallel+Sequential(默认使用复制,选中Move file为剪切)。

例3:并行放大

MulimgViewer可以轻松的完成纵向与横向的拼接,支持自动拼接保存,支持并行放大

同时支持任意位置划框(鼠标左键按住移动),多框并行放大(鼠标右键点击,生成新的框)。详细见

image

例4:成对数据浏览

MulimgViewer可以方便的进行成对的数据的浏览、比较。详细见

image

例5:支持远程挂载目录图片浏览

将远程服务器的目录挂载后,在MulimgViewer中选择目录即可,完成图片浏览。

  1. Ubuntu: 使用ubuntu的文件管理器nautilus,stfp://10.8.0.4连接到服务器。

  1. win10: 安装WinFsp和SSHFS-Win之后,文件资源管理器中填写远程服务器ip,例如:\\sshfs\user@ip!port

例6:支持点按旋转

显示多张图片的同时,鼠标左键点击即可完成图片旋转。

image

例7:批量化resize图片

利用自动保存功能,可以实现批量化resize图片。 操作:

  1. 输入模式选择:Sequential,选择输入文件夹
  2. 选择保存文件的输出目录
  3. 勾选自动保存Auto save all
  4. 设置Truth resolution为固定的大小,例如:256,256
  5. 点击保存💾️

5. 使用说明

5.1 快捷栏

image

5.2 操作流程

  1. Setting中填写布局参数:row(一行有几张图片), num per img(一个图片由几个子图片组成), col(一列有几个图片)

  2. File->Open,选择输入模式

    2.1. Sequential: 一个文件夹多张图片。

    2.2. Parallel auto: 一个文件夹多个子文件夹。一个文件夹下有n个子文件夹,子文件夹中为图片。

    2.3. Parallel manual: 手动选择多个子文件夹。

    2.4. Image file list: 从文件导入图片列表文件

  3. 这时图片显示在面板,可以使用next、last查看下一张,上一张图片

  4. File->Select output path, 选择输出的路径

  5. Setting->Output mode, 选择输出模式

  6. 点击保存💾️

5.3 快捷键

  1. 输入路径:

    Sequential: Ctrl+E

    Parallel auto: Ctrl+A

    Parallel manual: Ctrl+M

    Image file list: Ctrl+F

  2. 输出路径:Ctrl+O

  3. 下一张:Ctrl+N

  4. 上一张Ctrl+L

  5. 保存:Ctrl+S

  6. 刷新:Ctrl+R (或者鼠标右键)

  7. 使用键盘的上下左右,可以移动图像面板里的图像。

5.4 功能介绍

5.4.1 输入模式

Sequential串行浏览模式,一个文件夹下有不同的图片,命名不同,用于图片的拼接。

Parallel autoParallel manual并行浏览模式(子文件夹的名称不一样),需要确保各子文件夹下面的图片命名相同,用于不同图片的对比。

Image File List自定义模式,从txt, csv文件导入图片列表。支持csv文件多行多列显示。

如果需要自动排布,Num per img设为-1。

5.4.2 输出模式:

Stitch: 将拼接的图像保存到stitch_images目录下

Select: 分别保存当前浏览的图像到不同的文件夹,默认为copy模式,选中Move file为剪切模式。(推荐的输入模式为Parallel autoParallel manual,关闭Parallel+Sequential

Magnifer: 单独保存放大图像,方便用户的后期处理。

5.4.3 图像排列自动化

默认:Num per img = -1,这时为程序自动布局模式Num per img 的意思是几张图像合成一个图像。

5.4.4 取消图像排列自动化

num per img = 1或者>1,图像布局为手动模式,这时可以调整 rowcol

5.4.5. 并行模式下的串行显示

Parallel autoParallel manual模式下,可以并行显示多个文件夹。选中Parallel+Sequential,在并行显示的同时,可以串行浏览每个文件夹中的前n张图片,n可由Num per img设定。

例如:row=5 ,Num per img=4, col=1, 一次分别读取5个并行目录的4张图片,共20张。Vertical可以调整串行方向。

修改rowcol, 可以控制并行文件夹的二维排布。

image

5.4.6 自动保存

勾选自动保存Auto save all,点击保存💾️,实现批量化操作。

5.4.7 图像尺寸归一化

Fill: 图像尺寸为一组图像中的最大尺寸,填充模式(保持原始像素分辨率)

Crop: 图像尺寸为一组图像中的最小尺寸,裁剪模式(保持原始像素分辨率)

Resize: 图像尺寸为一组图像中的平均尺寸,缩放模式(不保持原始像素分辨率)

5.4.8 图像间隔

image

5.4.9 图像填充

支持多种颜色填充。支持背景填充透明同时支持前景透明度调节

5.4.10 并行手动模式支持路径导入保存

5.4.11 显示、输出尺寸独立

此功能可以保证显示的scale与输出独立。

应用场景

  1. 同时浏览显示100张图像,屏幕放不下,使用Show scale缩放即可
  2. 100张拼接造成的保存图片很大,使用Output scale可以方便控制文件大小

5.4.12 并行放大

操作:

  1. 点击放大按钮

  1. 鼠标变为十字光标,在任意图片位置划框
  2. 选择放大区域:按住鼠标左键,移动鼠标,释放鼠标左键,显示放大结果
  3. 新增放大框:鼠标右键,实现多框放大

Tip:

  1. 开启🔍️Keep size,即可获得与原始图片长宽比一样的放大结果。
  2. 🔍️Scale,默认为-1,1,自动设置scale。
  3. 可以选中Vertical,Crtl+R刷新显示,放大图像放置在原图的左侧。
  4. 🔍️Scale,支持自定义倍数放大,最大不超过原图尺寸。例如:3,3,长宽3倍的放大。
  5. Draw line width设为0,即可隐藏框。
  6. Draw line width单位为pixel,在所有缩放下线宽保持不变。如果在Show scale0.1,0.1Output scale1,1时,显示的框的宽度合适,那么输出框的宽度可能相比图片尺寸偏小。

微调box:

(注意:开启Select box后,使用鼠标左键不能划框)

  1. 选中Select box
  2. 鼠标左键单击,选中已有的放大框
  3. 然后使用键盘上下左右,微调放大框
  4. 关闭Select box

清除放大框

方法1:

  1. 选中Select box,键盘Del,删除特定box
  2. 关闭Select box,键盘Del,删除所有box

方法2:

  1. 关闭Select box
  2. 鼠标左键双击图片
  3. Ctrl+R刷新显示。

5.4.13 窗口大小自动化调节

开启Auto layout,即可实现窗口自动大小调节。

5.4.14 浏览图片,精确定位

粗定位: 移动slider。

精确定位:

  1. Help->Index table
  2. 查看图片显示序号
  3. 输入序号,回车

6. 注意事项以及使用技巧

6.1 并行模式

  1. 使用多图浏览模式(Parallel manual和Parallel auto),对比的文件夹里面的图像命名需要一样!
  2. 子文件夹的命名。如果是0,1,2...10,11,需要改为00,01,02,...10,11。因为排序时会变为:0,1,10,11,2...

文件重命名工具推荐:

win10: uTools

Ubuntu:

  1. purrr. sudo apt install purrr
  2. Thunar - Bulk Rename Files. sudo apt install thunar

6.2 多图拼接,超大像素图片,窗口大小问题

  1. 关闭Auto layout,最大化窗口
  2. 调节Show scale0.2,0.2缩小,2,2放大
  3. 更改Truth resolution,将所有照片resize到同一尺寸,对于浏览及其友好

7. 未来增强功能

感谢各位提供意见!大家可以在issues中发表意见,采用的会致谢大家!如果大家希望可以和我一起合作开发,请联系我!

  • 增加精确定位(目前已经有slider)
  • 增加图片索引查看,方便进行精确定位
  • 并行的局部放大功能(用于论文中的对比实验图片急需!
  • 输入方式,新增:路径文件的导入和存储(@nothingeasy提供改进意见)
  • 增加删除功能(完善筛选功能)
  • 保存带框的原始图像(@JuZiSYJ提供改进意见)
  • 拼图过程中,点击可旋转图片
  • 多框放大功能(@JuZiSYJ提供改进意见)
  • 去除放大图像的box(@stefanklut提供改进意见)
  • 高清图像的对比,放大图像1:1输出(@Faberman提供改进意见)
  • 为图像添加titile(@Faberman提供改进意见)

8. 致谢

  • nothingeasy:改进意见-(输入方式,新增:路径文件的导入和存储)
  • JuZiSYJ:改进意见-(保存带框的原始图像+并行放大)
  • Faberman:改进意见-(为图像添加titile+放大图像1:1输出)
  • stefanklut:改进意见-(不显示放大图像的边界框)

9. 引用

如果您在研究中使用此项目,请使用以下BibTeX条目。

@misc{MulimgViewer2020,
  author =       {Liu, Jiawei},
  title =        {{MulimgViewer: A multi-image viewer for image comparison and image stitching}},
  howpublished = {\url{https://github.com/nachifur/MulimgViewer}},
  year =         {2020}
}

10. 使用条款

许可证

GPL-3.0 License:https://www.gnu.org/licenses/gpl-3.0.en.html

额外条款