-
Notifications
You must be signed in to change notification settings - Fork 107
Home
MulimgViewer is an image viewer, which is capable of displaying multiple images in one window. It is very useful for image comparison, selection and stitching.
Features:
- Loading images from multiple folders and displaying them side by side
- Simultaneous magnification of multiple selected areas
- Image rotation
- Remote directory support
- Bulk image resizing
Download link: Windows 10 binary package (amd64)
Test images pack download link: https://github.com/nachifur/MulimgViewer/blob/master/img/test_img.zip
Your star is my biggest support in developing and improving this project!
After v3.9.1 only Windows 10 binary package (amd64) will be provided. But you can still use the source code to run the tool on other platforms. It is recommended to use Python 3.6 or newer.
pip installation:
pip install wxpython pillow pytest-shutil
run:
python3 MulimgViewer.py
Execute the provided binary file directly. Or download the source code and run MulimgViewer.py
.
How long does it take to browse a dataset - CelebA of 202,599 images? Display 1000 images at once using MulimgViewer — you will be all set in 200 clicks! See details.
Previously, you had to open each image separately, compare them one by one, then find the specific images in a folder and copy them to another place.
Now you can use MulimgViewer to load and display all the images from multiple directories at once, then export the image pairs with one click!
In Select
output mode images will be copied by default, and moved if Move file
option is selected. Use Select
output mode with Parallel Auto
or Parallel Manual
input modes and disabled Parallel+Sequential
option.
MulimgViewer supports automatic image stitching, saving and magnification in parallel!
You can select any part of the image to magnify that area. Click Zoom 🔍
, then click the left mouse button and draw a rectangle. Also you can duplicate the selection (click the right mouse button) and view all magnified areas simultaneously. See details.
MulimgViewer makes it easy to view and compare paired images.
After mounting a remote directory you can open that directory in MulimgViewer to view the images.
- Ubuntu: In the example below we connected to server
stfp://10.8.0.4
using Ubuntu's file managernautilus
.
- win10: After installing WinFsp and SSHFS-Win, fill in the remote server ip in the file explorer, for example:
\\sshfs\user@ip!port
Click Rotate ↷
, then click the left mouse button to rotate an image.
It is possible to batch resize images using the auto-save function. Step-by-step instructions:
- Input mode:
Sequential
. Choose the input directory; - Choose the output directory;
- Check
Auto save all
; - Set
Truth resolution
to a fixed size, for example256,256
; - Click
Save 💾️
.
-
Fill in the layout parameters in the Settings panel: row (number of images in a row), num per img (number of sub-images that will be combined into a single image), col (number of images in a column).
-
File->Open, select input mode:
2.1. Sequential: Multiple images in one folder.
2.2. Parallel Auto: One folder with several subfolders, each subfolder contains multiple images.
2.3. Parallel Manual: Manually select multiple folders.
2.4. Image File List: Import images according to a given list of filenames (TXT, CSV).
-
After loading the images you can use the Next and Previous buttons to switch between them.
-
File->Output path, Select the output path.
Input path:
- Sequential: Ctrl+E
- Parallel Auto: Ctrl+A
- Parallel Manual: Ctrl+M
- Image File List: Ctrl+F
Output path: Ctrl+O
Next: Ctrl+N
Previous Ctrl+L
Save: Ctrl+S
Refresh: Ctrl+R
Use the keyboard arrow keys (up, down, left, right) to move the image in the image panel.
Sequential
is a serial browsing mode. It is used to display and stitch multiple images with different filenames contained in a single folder.
Parallel Auto
and Parallel Manual
are parallel browsing modes (subfolders with different names). In order to compare the images, each folder or subfolder must contain the images with the same filenames.
Image File List
is a custom mode. You can import a list of images from TXT or CSV file. CSV supports multi-line and multi-column mode.
For automatic image arrangement set Num per img
to -1
.
Stitch
: Save the stitched image to the stitch_images directory.
Select
: Save the currently displaying images to a different folder. By default the images will be copied to a new location, you can select Move file
to move them instead.
Magnifer
: Save all the magnified areas separately.
Other modes are just the different combinations of the three modes listed above.
By default Num per img = -1
and this is an automatic layout mode. Num per img
means that several images are combined into a single image.
If Num per img = 1
or >1
, then the image layout is in manual mode. In this mode row
and col
numbers can be adjusted.
By selecting Parallel+Sequential
option, you can simultaneously view the first n images in folders 1-12, n can be set by Num per img
.
For example: row=5
, Num per img=4
, col=1
means that MulimgViewer will show 4 images from 5 parallel directories at once, 20 images in total. Check Vertical
to change the image layout direction.
Modify row
and col
to control the two-dimensional arrangement of parallel folders.
Select Auto save all
, then click Save 💾️
.
Fill
: Image size is the largest image in a group, filling mode (keep the original pixel resolution).
Crop
: Image size is the smallest image in a group, cropping mode (keep the original pixel resolution).
Resize
: Image size is an average size of all the images in a group, scaling mode (don't keep the original pixel resolution).
You can use custom background and foreground colors and transparency.
This feature provides independent view and output scales.
Application scenario:
- When you need to display a lot of images at the same time and the screen can’t fit them all, just set
Show scale
to shrink the images. - Stitched images at 100% scale can be very large, but you can control the dimensions of the individual images by setting
Output scale
.
Process Flow:
- Click
Zoom
;
- Mouse pointer will be turned into a crosshair cursor. Now you can make a selection;
- To make a selection press and hold the left mouse button, drag mouse to draw a rectangle and then release the button — a magnified area will be displayed;
- Click the right mouse button to duplicate the selection.
Tips:
-
🔍️Keep size
— keep the image and the magnified area aspect ratios the same. -
🔍️Scale
by default is set to-1,1
, which means the scaling factor will be chosen automatically. - Select
Vertical
, then pressCrtl+R
to place the magnified area on the right side of the original image. - Use
🔍️Scale
to change the magnification factor, but keep in mind that the maximum size will not exceed the original image size. For example,3,3
means enlargement by a scale factor of 3. - Set
Draw line width
to 0 to hide the selection border. -
Draw line width
is set in pixels and remains the same in all zoom levels. If the selection border width is suitable whenShow scale
is set to0.1,0.1
andOutput scale
is set to1,1
, then it will probably be much thinner in the output image.
Adjust the position of the selection:
- Check
Select box
; - Position the mouse pointer inside the selection border and click the left mouse button to select it;
- Use the keyboard arrow keys to adjust the position of the selection;
- Uncheck
Select box
.
Note: After selecting Select box
option you cannot make a new selection by pressing the left mouse button, but you can still duplicate an exsisting selection by pressing the right mouse button.
Clear a selection:
Method 1:
- Check
Select box
, click the left mouse button on a selection, pressDel
to clear the chosen selection; - Unheck
Select box
, pressDel
to clear all selections.
Method 2:
- Uncheck
Select box
; - Double-click the left mouse button on the image;
- Press
Ctrl+R
to clear all the selections and refresh the view.
Enable Auto layout
for automatic window resizing.
Move the slider for coarse positioning.
-
Help
->Index Table
; - Find the serial number of the image;
- Enter the serial number and press Enter.
- Make sure that image filenames in all folders/subfolders are the same when using the multi-image modes (Parallel Manual and Parallel Auto).
- Subfolder naming is also important. If the names are 0,1,2...10,11, then you should change them to 00,01,02...10,11. Otherwise MulimgViewer will sort them as 0,1,10,11,2...
Recommended file renaming tool:
win10: uTools
Ubuntu:
- purrr.
sudo apt install purrr
- Thunar-Bulk Rename Files.
sudo apt install thunar
- Disable
Auto layout
and maximize the window. - Adjust
Show scale
as needed. For example,0.2,0.2
to shrink,2,2
to enlarge images. - Set
Truth resolution
to resize all the images to the same size for your viewing convenience.
Thanks for your comments! Leave your suggestions, ideas and feedback in the issues, and I will try to implement the most useful ones! If you want to cooperate with me in development, please contact me!
- Add precise positioning (currently there is a slider)
- Add image index view to facilitate precise positioning
- Parallel partial zoom function (used for contrast experiment pictures in the paper needed urgently!)
- Input method, new: import and storage of path files (@nothingeasy provides suggestions for improvement)
- Add delete function (perfect filter function)
- Save the original framed image (@JuZiSYJ provides suggestions for improvement)
- Each image can be rotated after clicking
- Add multi-box zoom function (@JuZiSYJ provides suggestions for improvement)
- Remove the box of cropped images (@stefanklut provides suggestions for improvement)
- Comparison of high-definition images, and 1:1 output of enlarged images (@Faberman provides suggestions for improvement)
- Add title for each image (@Faberman provides suggestions for improvement)
- nothingeasy: improvement opinions-(input method, new addition: import and storage of path files)
- JuZiSYJ: Suggestions for improvement-(Save original image with frame + parallel zoom)
- Faberman: Suggestions for improvement-(add titile for each image + magnified image 1:1 output)
If you use this project in your research please use the following BibTeX entry.
@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}
}
License
GPL-3.0 License:https://www.gnu.org/licenses/gpl-3.0.en.html
Additiona terms of use
- Personal use is allowed.
- Contact [email protected] for commercial use.