
VIPBase is a free software with unique features that are useful for image and video processing. See highlights of the included features.
What's new (Current version 06.08.01)
- 08/01/2006: First version 06.08.01 released
Highlights of Features
| Image processing | Video processing | Photo enhancement |
|
Convert RGB to other color spaces Replace colors Change tone Canny edge detection Label images User defined image filter Compose multiple images |
Extract images from a video Create videos from image sequences Split / Merge videos Label a video |
Add photo frame Create online photo album |
| Computer Vision algorithms | Visualization | File management |
|
Affine, Perspective transformation Radial distortion removal Background subtraction Camera calibration AdaBoost face detection and feature training |
Visualize a hierarchical graph Visualize data sequences |
Batch rename files Batch create folders Remove duplicate files Remove empty folders and files |
Copyright
- VIPBase is Copyright © 2006 by Fengjun Lv. All rights reserved.
- VIPBase is provided as Freeware for private non-commercial or educational use (including non-profit organization). You are granted the right to use the software.
- If you find VIPBase helpful in your research projects, the author of VIPBase would appreciate it if you mention the software in your publications.
- VIPBase is provided "AS-IS". No warranty of any kind is expressed or implied. The author will not be liable for data loss, damages, loss of profits or any other kind of loss while using or misusing the software.
- Any trademarks mentioned here are the property of their respective owners.
Downloads and Installation
- VIPBase runs on Windows 2000/XP with 1024*768 (or higher) screen resolution.
- Download the supporting dlls, data files, documentations and the latest executable file.
- Unzip the files to the same folder and run VIPBase.exe.
- If you want to upgrade to a newer version of VIPBase, you only need to download the executable file.
Documentations
- Supported image formats
- User interface
- Menu commands
- Toolbar and keyboard shortcuts
- All documentations in a single page
Change Log
FAQ
Supported image formats
| Format | Extension | Read | Write |
| Windows Bitmap | bmp | 1~24-bit | 8,24-bit |
| Jpeg | jpg,jpeg | 8-bit grayscale, 24-bit | 8-bit grayscale, 24-bit |
| Tiff | tif,tiff | 1~24-bit | 24-bit |
| CompuServe Gif | gif | 1~8-bit | 8-bit |
| Portable Network Graphics | png | 1~24-bit | 24-bit |
| Targa | tga | 1~24-bit | 24-bit |
| Portable Bitmap | ppm,pgm,pbm | 1,8,24-bit | 1,8,24-bit |
| Encapsulated Postscript | eps | 8-bit grayscale | 8-bit grayscale |
| Adobe Photoshop | psd | 8,24-bit | 24-bit |
Note that:
- VIPBase supports more formats than those listed here (read only). For example, VIPBase also supports 32-bit Windows Bitmap and other formats such as Windows Icon (.ico) files and Windows Cursor (.cur) files. We only list the most popular formats here. If you are not sure whether VIPBase supports some specific image format or not, just try to open it with VIPBase.
- Some types of Adobe Photoshop (.psd) format, e.g. the layered files, are not supported.
User interface
The workspace of VIPBase can be divided into 6 parts, as shown below.
The child windows (called image windows here), the menu, the toolbar and the status bar are standard in a Multiple Document Interface (MDI), as seen in many Windows applications such as Photoshop and Visual Studio. The shortcut bar and the list bar are two unique features that are introduced in VIPBase.
The usage of each part is explained as follows.
The image windows, the menu, the toolbar and the status bar
You can open multiple images in VIPBase and each opened image is displayed in a child window. See here for how to open images in VIPBase.- Switch between images
- To quickly switch between image windows, press the "Ctrl+Tab" key. Or you can use the tab of each image window at the bottom of the image window area.
- If the file name of the current image ends with digits, you can press the "PageDown" and or the "PageUp" key to switch to the next or the previous image (if it exists) in the same image window. For example, suppose the current image is "c:\input\img005.jpg" and there are 10 consecutive images "img001.jpg",...,"img010.jpg" in the folder "c:\input". Pressing the "PageDown" will change the current image to "img006.jpg" and pressing the "PageUp" will change the current image to "img004.jpg". You can also press the "Home" or the "End" key to go to the first or the last image in the same sequence ("c:\input\img001.jpg" and "c:\input\img010.jpg", respectively in this example).
- View information of the current image
- To quickly view information of the current image, press the "F3" key.
- When you move the mouse cursor over the current image, the position of the cursor, the RGB and the intensity value of the pixel at the cursor position is displayed on the status bar, as shown below.

The status bar also displays information such as the hint of the current selected menu or toolbar command, the current zoom ratio and the current image size.
- Precise cursor moving functions
- To move cursor 1 pixel left, press the "Left arrow" or the "J" key.
- To move cursor 1 pixel right, press the "Right arrow" or the "L" key.
- To move cursor 1 pixel up, press the "Up arrow" or the "I" key.
- To move cursor 1 pixel down, press the "Down arrow" or the "K" key.
- To move cursor to the left border of the current image window, press the "S" key.
- To move cursor to the right border of the current image window, press the "F" key.
- To move cursor to the top border of the current image window, press the "E" key.
- To move cursor to the bottom border of the current image window, press the "D" key.
- To change pixel value at the cursor position, press the "Insert" key.
- Zooming functions
- To zoom in by 150% on the current image, press the "+" key. The current zooming ratio is displayed in the status bar. When the ratio reaches 1600%, you can not zoom in any further.
- To zoom out by 150% on the current image, press the "-" key. When the ratio reaches 6%, you can not zoom out any further.
- To fit the current image to its image window size, press the "*" key.
- To reset to the actual size of the current image (no zooming), press the "/" key.
- If an image is too large and only part of it can be displayed in the current image window. The best way to navigate through the whole image is using the Pan window. See details here.
- Popup context menu
- Right clicking on an image will bring up the image context menu. It provides some frequently used functions.
- Right clicking on the tab of the current image will bring up the tab context menu. You can quickly close or reload the image, or copy its path to the clipboard.

The image context menu

The tab context menu
To quickly close the current image, press the "ESC" key. Note that when a file is being closed, VIPBase will NOT prompt you to save it. Please save any changes you have made before the file is closed.
The shortcut bar
Tip: You can quickly hide or show the shortcut bar using the "Tab" key.
- Quick access to image files
The first two tabs of the shortcut bar are the "Folder" tab and the "Files" tab. When used together they give you quick access to image files without opening any dialogs. See here for how to use them.


The "Folder" tab The "Files" tab - Working with other softwares
-
VIPBase can call other image processing softwares to open the current image. Currently, the following softwares are supported: ACDSee, Photoshop, MS Paint (comes with your Windows installation) and XNView.
VIPBase will look for the above softwares in their default installation folder. If any one is found, its icon will show up in the "Softwares" tab of the shortcut bar. Just click any icon and the current image will be opened in the software you choose. After you finish editing the image, save it in that software and reload it in VIPBase.
- VIPBase also includes links to other softwares. Currently, the following softwares are supported: UltraEdit, MS Calculator, MS Dos Prompt and Windows explorer. The last three come with your Windows installation.
When you click the UltraEdit icon (if it is installed), the current image will be opened in UltraEdit in the binary mode.
When you click the Dos Prompt or the Windows Explorer icon, a Dos prompt or a Windows explorer window will show up and the current directory is set to the directory of the current image.


The "Imaging softwares" tab The "Other softwares" tab -
VIPBase can call other image processing softwares to open the current image. Currently, the following softwares are supported: ACDSee, Photoshop, MS Paint (comes with your Windows installation) and XNView.
The list bar
When you open multiple images or when you create a web album using VIPBase's AlbumCreator, the list bar allows you to quickly go through multiple images in a single image window. See here for how to use the list bar.
Menu Commands
File, Edit, Draw, Image, Video, Tool, View, Window, Help, Popup context menuFile
- Open (Ctrl+O)
- Reload (F5)
- Open Multiple Files
- Open Folder
- Open List
- Close (ESC): Close the current file
- Save (Ctrl+S)
- Save As (F6)
- Batch Rename
- Create Folders
- Remove Duplicates
- Remove Empty Folders and Files
- Print (Ctrl+P)
- Clear History
- Exit: Exit VIPBase
Edit
- Copy (Ctrl+C)
- Paste (Ctrl+V)
- Select None
- Select Rectangle
- Select Ellipse
- Select Polygon
- Select Freehand
- Copy Selection
- Paste Selection
- Cut Selection (Ctrl+X)
- Fill Selection
- Copy Image File Path (F4)
Draw
Image
- Basic Operation
- Color
- Separate
- Merge
- Replace Color(s)
- Swap Color(s)
- Tone
- Count Color
- Auto Color
- Combine
- Compose/Trim/Slice
- Edge Detection
- Effect
- Geometric Transformation
- Intensity/Hue/Saturation
- Histogram
- Label
- Morphological
- Noise
- Photo Enhancement
- Image Info (F3)
- View Image in Text
- User Defined Filter
- Batch Processing
Video
- Extract images from an AVI file
- Create an AVI file from images
- Split an AVI file
- Merge AVI files
- Combine AVI files
- Crop images from an AVI file
- Get gradient of an AVI file
- Label an AVI file
Tool
View
- Point Tool
- Zoom at Cursor
- Zoom Rectangle
- Magnifying Glass
- Pan Window
- Zoom In (+)
- Zoom Out (-)
- Fit to Window (*)
- Normal Size (/)
- List Bar: Show/Hide List Bar.
- Shortcut Bar (Tab): Show/Hide Shortcut Bar.
Window
- Cascade: Cascade child windows
- Tile Horizontally: Horizontally tile child windows
- Tile Vertically: Vertically tile child windows
- Arrange Icons: Arrange icons of minimized windows
- Close: Close the current window
- Close All: Close all windows
Help
- Content (F1): Open the index page of documentations
- Keyboard: Display keyboard and toolbar shortcuts
- About VIPBase (F2)
Popup context menu
- Image Info (F3)
- View Image in Text
- Resize
- Rotate
- Flip Horizontal
- Flip Vertical
- Intensity Histogram(F7)
- Replace Color(s)
- Grayscale (F8)
- Inverse
- Auto Color
- Blur
- Sharpen
- Canny Edge Detection (F9)
- Save As (F6)
- Close (ESC): Close the current file
- Reload (F5)
Toolbar and keyboard shortcuts
| Toolbar | Keyboard | Menu | Function |
![]() |
Ctrl+O | File->Open | Open an image file |
![]() |
Ctrl+S | File->Save | Save the current image |
![]() |
Edit->Copy Selection | Copy selection to clipboard | |
![]() |
Edit->Paste Selection | Paste clipboard image as selection | |
![]() |
Go to the parent folder in the "Folder" and the "Files" tab of the shortcut bar | ||
![]() |
Open selected files in the "Files" tab of the shortcut bar | ||
![]() |
View->Point Tool | Reset to the normal mouse pointer | |
![]() |
View->Zoom at Cursor | Zoom at cursor | |
![]() |
View->Zoom Rectangle | Zoom a rectangular region | |
![]() |
View->Magnifying Glass | Zoom like a magnifying Glass | |
![]() |
View->Pan Window | Navigate through the whole image using a thumbnail view | |
![]() |
Go to the first image on the list bar | ||
![]() |
Go to the previous image on the list bar | ||
![]() |
Go to the next image on the list bar | ||
![]() |
Go to the last image on the list bar | ||
| F5 | File->Reload | Reload the current image | |
| ESC or Ctrl+F4 | File->Close | Close the current image | |
| F6 | File->Save As | Save the current image as another file | |
| Ctrl+P | File->Print | Print the current image | |
| Ctrl+C | Edit->Copy | Copy the current image to clipboard | |
| Ctrl+V | Edit->Paste | Paste the clipboard image to a new file | |
| Ctrl+X | Edit->Cut Selection | Cut and fill the current selection with white color | |
| F4 | Edit->Copy Image File Path | Copy the full path name of the current image to clipboard | |
| F8 | Image->Basic Operation->Grayscale | Convert the current image to grayscale | |
| F9 | Image->Edge detection->Canny | Apply canny edge detection to the current image | |
| F7 | Image->Histogram->Intensity | Display the intensity histogram of the current image | |
| F3 | Image->Image Info | Display information of the current image | |
| + | View->Zoom In | Zoom in by 150% | |
| - | View->Zoom Out | Zoom out by 150% | |
| * | View->Fit to Window | Fit the current image to the window size | |
| / | View->Normal Size | Reset to the actual size of the current image | |
| Tab | View->Shortcut Bar | Show/Hide the shortcut bar | |
| F1 | Help->Content | Open the index page of documentations | |
| F2 | Help->About VIPBase | Open the About dialog | |
| Ctrl+Tab | Switch between image windows | ||
| Left or J | Move cursor 1 pixel left | ||
| Right or L | Move cursor 1 pixel right | ||
| Up or I | Move cursor 1 pixel up | ||
| Down or K | Move cursor 1 pixel down | ||
| S | Move cursor to the left border of the current image window | ||
| F | Move cursor to the right border of the current image window | ||
| E | Move cursor to the top border of the current image window | ||
| D | Move cursor to the bottom border of the current image window | ||
| Home | Go to the first file on a list of consecutive file names | ||
| PageUp | Go to the previous file on a list of consecutive file names | ||
| PageDown | Go to the next file on a list of consecutive file names | ||
| End | Go to the last file on a list of consecutive file names | ||
| Insert | Change the color at the cursor position |
Change Log
| Release date | Version | Changes |
| 08/01/2006 | 06.08.01 | First release |
FAQ
- Q: What is special about VIPBase and how it all started?
A: If you are a researcher in the fields of computer vision and image processing, there are some features of VIPBase that you may find very handy and are difficult to find in other popular free image and video processing softwares such as ImageMagick, XNView, Picasa, GIMP and VirtualDub. For example, to replace one RGB value with another in an image sounds very simple but believe it or not, there is no easy way to do this. Another example is extracting frames of some part of a video. VirtualDub certainly can do this but you have to extract frames of the entire sequence first, which takes time and disk space.
I was so surprised finding out that such useful features were missing that I decided to write something as a complement to existing softwares. Initially VIPBase was intended to serve my own needs in my research work, but it turns out to be a popular tool widely used by my colleagues. So I decide to release it publicly and hope more people will find it useful.
If your are a different type of user, you may also need some features of VIPBase such as the AlbumCreator, the hierarchy visualization tool and the batch renaming tool.
- Q: What tools are used in the development of VIPBase?
A: The coding is done using Visual C++ 6.0 with SP5. The following tools are also used.
- Leadtools Imaging SDK is used for loading/saving images and some image processing routines.
- BCG Controlbar is used to create an OfficeXP-like user interface.
- Xerces C++ Parser is used to parse XML files.
- Q: How to report bugs?
A: Please make sure you have completed the following steps before reporting a bug:
- Read this FAQ and the documentation of the function you are using. Your answer may already be there.
- Visit our guestbook. The same problem may have been reported before and solutions may have been provided by other users.
- Make sure the problem you found is really caused by a bug of VIPBase rather than a misuse of the software, such as specifying a non-existent file or opening an image with unknown format.
Please provide a detailed description of the problem. Sometimes when VIPBase encounters a problem, it will display an error dialog indicating the exact line number (of the source code) that caused the problem, such as the one shown below. Please include such information if it is available.

Please send the report to
. Keep your report concise and direct to the point. Since I work on this project only in my spare time, I may not be able to answer all emails in a timely manner. I appreciate your patience.
Open image file(s)
See here for the supported image formats for reading.There are several ways to open a single image or multiple images.
- Use "File->Open" to open a single image.
- Use "File->Reload" to reload the current image.
- Use "File->Open Multiple Files" to select and open multiple images in a folder.
- Use "File->Open Folder" to open all images in a folder.
- Use "File->Open List" to open the images on a text list.
- Use the "Shortcut Bar" to open a single or multiple images in a folder.
- Use "Drag and drop" to open a single or multiple images.
- Use "Edit->Paste" to paste an image from the Windows clipboard.
- Use "Recent file history" to open a recently opened image.
- Use "Command prompt" to open an image from the command prompt.
File->Open
This command opens a single file open dialog, as shown below.
You can have a preview of the selected image before opening it. You can view the image information by clicking the "File Info" icon on the left. An example of image information is shown below.

File->Reload
This command reloads the current image. Note that if the current image has not been saved, any changes made will be lost after it is reloaded.File->Open Multiple Files
This command opens a multiple files open dialog, as shown below. The selected (highlighted) files will be opened.
Note that:
- The maximum number of files that can be opened using this command is 10240.
- Only one window will be opened and the first selected file is displayed in this window. To navigate through these files, use the list bar at the bottom of VIPBase, as shown below, or use the navigation toolbar
File->Open Folder
This command opens a folder open dialog, as shown below. All images in the selected folder will be opened.
Note that:
- There is no upper limit for the number of files opened this way.
- Again, only one window will be opened and the first selected file is displayed in this window.
File->Open List
This command opens the images that are listed on a text file. Each line of the text file is the file name (with full path) of one image file. It is very convenient to use this command to open multiple files from different folders.Note that:
- There is no upper limit for the number of files opened this way.
- Again, only one window will be opened and the first selected file is displayed in this window.
File->Recent file history
Up to 8 most recently opened images are recorded in the recent file history. Click any of them to open one image at a time.File->Clear recent file history
This command clears the recent file history.Open files using the shortcut bar
This feature allows you to open multiple files without opening any dialog.First, choose the "Folder" tab on the shortcut bar and select the folder that contains the images. The content of the folder will be displayed in the "Files" tab on the shortcut bar, as shown below.
|
|
| "Folder" tab | "Files" tab |
Double click any item and it will be opened in VIPBase if its format can be recognized. Otherwise, it will be opened with the associated program.
If multiple files have been selected, use the toolbar
to open the selected files.
In the "Files" tab, use the toolbar
to go to the upper folder.
Note that:
- You can right click in the "Folder" and the "Files" tab to bring up the popup context menu, as you do in a window explorer.
- The "Folder" and the "Files" tab are coupled which means when you change folder from either tab, the context of the other will change accordingly.
Drag and drop
You can open multiple files by dragging and dropping them into VIPBase. VIPBase will open a new window for each file.Edit->Paste
If there is an image in the Windows clipboard, this command will paste the image to a new file in the system temporary folder (e.g. "c:\temp\" on my computer). The file name has the format "paste_yyyy_mm_dd_hh_mm_ss.bmp" (e.g. "paste_2005_08_11_23_55_40.bmp"). This is very convenient for exchanging data between VIPBase and other image processing softwares.Command prompt
The command opens an image from the command line and the usage is "VIPBase image_filename".Save image file
See here for the supported image formats for writing.Note that when a file is being closed, VIPBase will NOT prompt you to save it. Please save any changes you have made before the file is closed.
File->Save
This command saves the current image using the same file name and format.File->Save As
This command saves the current image as another file with a specified format. It opens a file save dialog, as shown below.
You can specify the image format and settings associated with that format, such as:

Batch rename files
This command opens the "Batch rename" dialog as shown below, which searches for files by criteria, gathers information of the files and batch renames the files according to specified rules.This is a one of the most useful features of VIPBase because it offers a fast searching (compared with Windows searching) and multiple options for renaming files.
Warning: Some operations may delete or overwrite files.
Please always BACKUP your files before proceeding further.
The author will NOT be liable for any data loss while using or misusing this function.

File searching and handling
-
Search for files by criteria
- At the top of the dialog, select the "Folder" option
- In the "Folder or the list file name" box, input the folder that needs to be searched.
- Set the searching criteria.
- In the "Prefix" box, input the string that must appear in the prefix of a file name. For example, if your input is "img", files with prefix such as "img01", "dc_img_0001", "00img" will be found. If you leave this box blank, any prefix is valid.
- In the "Extension" box, input the extension you want to include or exclude. For example, if you want to find all ".jpg" and ".tif" files and exclude all ".bmp" files, input "jpg;tif;-bmp". If you want to find any files except all ".bmp" files, input "-bmp". Leaving this box blank means any extension is valid.
- In the "Size(>=)" box, input the lower limit (in bytes) of the file size. Any file size will be valid if the number is "0".
- Click the "Load" button and file names that meet the criteria will appear in the "list of source files" box. Each line is a file name with full path. The names are sorted in ascending order. The total number of the files that are found is displayed in the title of the dialog.
-
Load files from a text list
Instead of searching for files, you can load a list of files from a text file, which saves time if you have saved the searching result previously.- At the top of the dialog, select the "File" option
- In the "Folder or the list file name" box, specify the text file that contains the list of files.
- Click the "Load" button and the list will appear in the "list of source files" box. The total number of the files is shown in the title of the dialog.
-
Edit the list of source files
The "list of source files" box is editable. For example, you can remove files that you don't want to include; you can add files or you can change the order of files. You can paste text from the Windows clipboard into this box, which is handy if you prefer to edit the list in your favorite text editor. Note that if the size of the text in the clipboard is too large, not all contents will be pasted due to some memory limit set by Windows. -
Change the order of the source files
You can sort the list or randomize it by clicking the "Sort" or the "Randomize" button. -
Open the current file
The current file is the line with the blinking cursor. For example, in the figure shown above, the current file is the one in the red rectangle. You can open the file with the associated program by clicking the "Open file" button or open the folder containing the file by clicking the "Open folder" button. Delete source files
Clicking the "Delete files" button will delete all the files listed in the "list of source files" box. VIPBase will ask you to confirm this operation. Warning: The files will not be moved to the Windows recycle bin. Once they are deleted, they can not be restored. Please make sure you really want to delete these files.Copy the list of source files
Clicking the "Copy content" button will save the content of the "list of source files" box into a text file in the system temporary folder (e.g. "c:\temp\" on my computer). The file name has the format "rename_yyyy_mm_dd_hh_mm_ss.txt" (e.g. "rename_2005_08_11_23_55_40.txt"). VIPBase then calls the associated program to open the text file.Clear the list of source files
Clicking the "Clear" button will clear the content of the "list of source files" box.
Gather information about the listed files
Get count and total size of files with the same extension
Click the "Ext info" button. VIPBase will group files according to their extensions first and then count and calculate the total file size of each group. Each line shows one extension, the number of files with that extension and the total file size, respectively. The extensions are sorted by total file size in descending order. The following example shows the first 10 extensions in the folder "C:\Windows\System32\" on my computer.
Find out the latest files
Click the "Date info" button. VIPBase will find out the files with the latest modification date in the root folder as well as in each of its subfolders. Each line shows the current folder, the date and the name of the latest file. The following example shows some latest files in "C:\Windows\System32\" on my computer.
Note that if you want to search the lower level folders, set a larger depth in the "Depth" box.
Get the size information of a folder
Click the "Size info" button. VIPBase will get the count and total size of files in the root folder as well as in each of its subfolders. Each line shows the current folder, the count of files including/excluding its subfolders, the total file size including/excluding its subfolders. The following example shows some searching result of "C:\Windows\System32\" on my computer.
Note that if you want to search the lower level folders, set a larger depth in the "Depth" box.
Batch renames files
Rename by a list
This option provides a very flexible way to batch rename files. You can edit your own list of the desired file names in your favorite text editor and load it into VIPBase.- Select the "Rename by a list" option as the renaming rule.
- Specify the text file that contains the list of the desired file names and click the "Load list" button to load the list into the "desired file names after renaming" box.
Each line on this list is the new file name without full path. Note that the "desired file names after renaming" box is editable, which means you can paste text into that box, but if the size of the text in the clipboard is too large, not all contents will be pasted due to some memory limit set by Windows.
- Specify the output folder in the "output folder" box. If it is empty, the source file path will not be changed. For example, the following are the source file list and the desired file list.

If the output folder is empty, the actual new file names will be

Otherwise, if the output folder is "C:\output", the actual new file names will be

Note that if the source list and the new list have different number of files, the smaller number will be considered.
- Click the "Rename" button to start the renaming process.
- You can change the case of the new file names to lower case, upper case or capitalized.
- If you want to keep a copy of the source files, uncheck the "Delete source" option. Otherwise, the source file will be deleted after renaming.
- Warning: these operations may overwrite or delete files and produce undesired result. For example, if you want to rename file A to B, but in fact, a file with name B also appears later on the source list. The renaming of file A will replace the original file B. So, always be careful when renaming files and alway backup your files before the renaming process.
Rename by a template
This option is suitable for file names that exhibit a pattern such as "prefix-number-suffix.extension".- Select the "Rename by a template" option as the renaming rule.
- Specify the prefix, suffix, the number of digits, the starting number and extension of the new names. The preview shows you dynamically what the new name of the first file on the list will be when you are changing your input. Note that if you leave the extension blank, the original extension of each file will be used.
- Again, specify the output folder in the "output folder" box and click the "Rename" button to start the renaming process.
Renumber files
This option does the zero-padding to file names. For example, if the file names are "abc1.jpg", "abc2.jpg", ..., "abc999.jpg" and you want to change to four digits, the result will be "abc0001.jpg", "abc0002.jpg", ..., "abc0999.jpg".- Select the "Renumber" option as the renaming rule.
- Specify the number of digits after zero-padding
- Again, specify the output folder in the "output folder" box and click the "Rename" button to start the renaming process.
Batch create folders
This command batch creates folders. In the dialog shown here, specify the folder list either by loading a text file or pasting text from the Windows clipboard. Each line is a folder name.
You can edit the content of the list. After you finish, click the "Create" button, VIPBase will create all the folders listed in the above text box.
VIPBase recursively creates folder which means if a folder's parent folder does not exist, VIPBase will create the parent folder first. In the above example, "C:\output\3" will be created first, then "C:\output\3\4" and finally "C:\output\3\4\5".
This is a safe command, which means if a folder exists and is not empty, VIPBase will not change or destroy the content of that folder.
Remove duplicate files
This command opens the "Remove duplicate files" dialog as shown below, which searches for and delete duplicate files within a single folder or across two folders.
Warning: Some operations may delete files.
Please always BACKUP your files before proceeding further.
The author will NOT be liable for any data loss while using or misusing this function.

Remove duplicate files within the same folder
- Specify the folder in the "Source folder".
- Uncheck the "Find duplicates between two directories" option.
- Set the searching criteria. Only files that meet the criteria will be searched.
- In the "Prefix" box, input the string that must appear in the prefix of a file name. For example, if your input is "img", files with prefix such as "img01", "dc_img_0001", "00img" will be found. If you leave this box blank, any prefix is valid.
- In the "Extension" box, input the extension you want to include or exclude. For example, if you want to find all ".jpg" and ".tif" files and exclude all ".bmp" files, input "jpg;tif;-bmp". If you want to find any files except all ".bmp" files, input "-bmp". Leaving this box blank means any extension is valid.
- In the "Size(>=)" box, input the lower limit (in bytes) of the file size. Any file size will be valid if the number is "0".
- Specify the type of operation applied to the duplicate files.
- "Test only" records the duplicate files in a log file (if enabled) and does not delete any file;
- "Delete" records the duplicate files in a log file (if enabled) and deletes the files permanently;
- "Move to" (which will enable the "Destination folder" box below) records the duplicate files in a log file (if enabled), renames the files according to their file name and moves the files to the destination folder that you specified. The renaming rule is Replace every "\" in the path with a "_" and replace the drive symbol ":\" with a "__". For example, a duplicate file "C:\output\aa.jpg" will be moved to "C:\temp\C__output_aa.jpg" if the destination folder is "C:\temp".
- Click the "Remove" button to start the process. The following description of the searching algorithm for the duplicate files may help you understand the behavior of this function better.
- The algorithm first gets the size information of all files in the source folder that meet the searching criteria.
- Then it groups files with the same size.
- It reads and compares the content of each file in the same group and then finds out the duplicate files within that group, which means that the algorithm finds out all duplicates regardless of the name, date and location of the files.
- The algorithm sorts the duplicates by their file names in either ascending or descending order, depending on what you have chosen.
- The algorithm only keeps the first file on the sorted list and deletes the remaining files.
- The number of sets of duplicates and deleted files are shown at the bottom of the dialog.
- Check out the log file (if enabled) for the list of duplicate files by clicking the "View" button, or you can delete the log file by clicking the "Clear" button.
Remove duplicate files across two folders
- Specify the folder in the "Source folder".
- Check the "Find duplicates between two directories" option and specify "Source folder 2" (called a reference folder).
- Set the searching criteria and type of operation, as described in step 3 and 4 in the previous section.
- Click "Remove" to start the process. In additional to what are described in the previous section, the algorithm also finds files (in the first folder) that have duplicates in the reference folder .
- Similarly, the algorithm sorts the duplicates by their file names in either ascending or descending order and deletes all files on the list except the first one. Note that, none of the files in the reference folder will be deleted.
Remove empty folders and files
This command removes all empty subfolders and files in the folder that you specified. In the dialog shown here, specify the folder. You can choose to remove empty folders or empty files or both. Click the "Find" button to find all empty folders and/or files and click the "Remove" button to delete them. You can edit the list before you click the "Remove" button.Note that empty file means the size of the file is zero. Empty folder means the total size of the files contained in that folder is zero. So if a folder contains only empty files or empty subfolders, it is considered to be an empty folder too.

Print an image
The printing function of VIPBase is straightforward. It simply resizes the image proportionally to fit the paper size and prints it out from your default printer.
Working with the Windows clipboard
Edit->Copy
Copy the current image to the Windows clipboard.Edit->Paste
Paste the image from the Windows clipboard to a new file in the system temporary folder (e.g. "c:\temp\" on my computer). The file name has the format "paste_yyyy_mm_dd_hh_mm_ss.bmp" (e.g. "paste_2005_08_11_23_55_40.bmp"). This is a tiny but extremely useful feature because it saves the clipboard image directly without opening any image editor.Edit->Select None
Clear the selection.Edit->Select Rectangle
Set the selection shape as a rectangle, as shown below. You can move the selection or click outside to cancel the selection.Edit->Select Ellipse
Set the selection shape as an ellipse, as shown below. You can move the selection or click outside to cancel the selection.Edit->Select Polygon
Set the selection shape as a polygon, as shown below. You can move the selection or click outside to cancel the selection.Edit->Select Freehand
Set the selection shape as freehand, as shown below. You can move the selection or click outside to cancel the selection.Edit->Copy Selection
Copy the current selection to the Windows clipboard.Edit->Paste Selection
Paste the image from the Windows clipboard onto the current image as a rectangular region.Edit->Cut Selection
Fill the current selection with white color.Edit->Fill Selection
Fill the current selection with specified color.Edit->Copy image file path
Copy the full path name of the current image to the Windows clipboard. It is very useful if you want to open the current image in other softwares.Drawing functions
Draw->Text
Draw text on the current image. In the following dialog, you can specify the position and the content of the text as well as the font type, size and color.
The result looks like
Draw->Point
Draw a point on the current image. Similar to the above function except it also draws a red cross at the specified location.Draw->Line
Draw a line on the current image. In the following dialog, you can specify the starting point, the ending point, the width, color and style of the line. You can also display text which will cross the center of the line.
The result looks like
Draw->Rectangle
Draw a rectangle on the current image. You can specify the top-left and the bottom-right corner of the rectangle as well as line width, color and style. You can also display text which will be centered in the rectangle.
Draw->Ellipse
Draw an ellipse on the current image. You can specify the top-left and the bottom-right corner of the bounding box of the ellipse as well as line width, color and style. You can also display text which will be centered in the ellipse.
Draw grids
This function generates a grid image. You can specify in the following dialog- the width and height of each grid
- the number of grids in horizontal and vertical direction
- line width in horizontal and vertical direction

You can choose from the following eight patterns of the grid.
- No pattern
- Checkerboard
- Odd/Even row
- Odd/Even column
- Odd/Even row & column
Draw a hierarchy from an XML file
This function draws a hierarchical graph from an XML file. One example of the generated image is shown as follows, which is the hierarchy of body joints.
The xml file that is used to generate this image is here.

Don't be intimidated by this. Actually it is quite straightforward even if you are not familiar with XML. Let's look at the definition of the xml file, which itself is a DTD file.

There are three attributes for the root of the hierarchy.
- The charset. The default value is "utf-8" for English. You can use other character set. For example, use "GB2312" for Chinese. (Change the encoding attribute of the XML file as well)
- The orientation of the graph. Use either "hori" (horizontal) or "vert" (vertical). The default value is "hori". The above example uses horizontal orientation, which means sibling nodes of the graph are aligned horizontally. The vertical version of this example is here.
- The flag (bindex) of whether draw node index or not. The default value is "no". If it is yes, the image of the above example will change as follows. The order is based on a Depth-First-Search of the hierarchy.

- Name
- Shape which can be a rectangle, rounded-rectangle, diamond and ellipse. The default is rectangle
- Text color
- Background color
- Line width of the text box
- The flag (boundingbox) of whether draw bounding box or not and the color of the bounding box (boundingboxcolor). Take the above example. If we change
to
,
which means we want to draw a blue bounding box around the node "rhipjoint" and its descendant nodes, the generated image will change to
- The ratio of margin (horizontal and vertical) between text and the text box
- The horizontal and vertical space between two adjacent sibling nodes.
Basic image processing
Resize
Resize the current image.Rotate
Rotate the current image.Flip Horizontal
Flip the current image horizontally.Flip Vertical
Flip the current image vertically.Grayscale
Convert the current color image to grayscale. The following dialog allows you to assign different weights for R,G and B channel. The default weights are 0.299, 0.587 and 0.114 respectively. Click the "Preview" button to get a quick preview of the result.
Inverse
Inverse the current image, making it like a photographic negative.Blur
Blur the current image.Sharpen
Sharpen the current image.Convert RGB to other color spaces
This set of functions convert the RGB color space to other color spaces such as HLS, HSV, YIQ, YUV, YCbCr and CIE_XYZ.Three grayscale images will be generated for each of three color channels. Note that the intensity of these grayscale images may have been rescaled to the range of [0,255].
The following example shows the same image in different color spaces.

Merge color channels
This function merges three channels in RGB, HLS or HSV color space into a 24 bit color image.The following dialog allows you to select three channels and each should be a grayscale image.

Swap RGB channels
This set of functions swap RGB channels to RBG, GRB, GBR, BRG and BGR, respectively.The following example shows an image and the swapped results.

Replace colors
This function replaces one set of colors with another.In the following dialog, the left column is the list of colors that you want to replace. Each line contains the R,G,B value of one color. Each line in the right column is the corresponding new color. You can edit the lists directly. To add one more line, press CTRL+Enter. Or you can paste the lists from a text editor.
Both columns should have the same number of lines. If not, the smaller number will be considered.

The following example replaces RGB value of (0,0,255) and (0,0,128) with (0,0,255) and (0,0,128), respectively.
![]() |
-> | ![]() |
Change color of the pixel at the cursor position
You can easily change color of the pixel at the cursor position by pressing the "Insert" key. A dialog will show up as follows. Specify the R,G,B of the new color and click OK.
Change color tone
This set of functions change the color tone of the current image to the following settings: sepia, rose, apple, violet, aqua and metal. See the following example.The original image:

After changed to each of the tone settings:

Count colors
This function counts the total number of unique colors in the current image. One example is shown here.
Auto color correction
This function automatically adjusts the contrast and color of the current image.The following example shows one image and the corrected result.

Combine images
This function combines multiple images pixel-wisely. Available operations include add, subtract (2 images only), mean, median, and, or, xor, max and min.In the dialog shown here, you can either select multiple files or specify a folder name to combine all images in that folder (including subfolders). You can only include certain types of files in that folder by giving the file extension. For example, to include all jpg files, use "jpg"; to include all jpg as well as bmp files, use "jpg;bmp"; to include all jpg files and exclude all bmp files, use "jpg;-bmp"; to include all but bmp files, use "-bmp". Leaving the extension box blank will include all files (same as "*.*").

The following example shows two images and the combined results.


Note that:
- If images have different sizes, the smallest one will be considered and all images are aligned with respect to the bottom-left corner.
- A pixel value is truncated to [0,255].
- The subtract operation only considers the first two source files and the first one is the minuend.
- If there are only two source files, the median operation is the same as the mean operation.
In the above example, if we set white as the transparent color, the results will change as follows.

Compose images
Single composite image
This function aligns and composes multiple images (with labels) into a single larger image (called a composite image).In the dialog shown here, you can either select multiple files or specify a folder name to compose all images in that folder (including subfolders). You can only include certain types of files in that folder by giving the file extension. For example, to include all jpg files, use "jpg" (same as *.jpg)"; to include all jpg as well as bmp files, use "jpg;bmp"; to include all jpg files and exclude all bmp files, use "jpg;-bmp"; to include all but bmp files, use "-bmp". Leaving the extension box blank will include all files (same as "*.*").
You can specify the output file name, the background color, the number of columns in each row, the horizontal and vertical space between columns and rows and the margin around the final composite image.
You can label each image in the bottom edit box of the dialog. Labels are separated by ";". You can choose the font type, size and color of the labels by clicking the "Font" button.

The following example shows the composite result of five images.

Note that:
- It does not matter if images have different sizes. They are center aligned horizontally and vertically.
- If you specify the source file list in the top edit box of the dialog (using the "from files" radio button), you also specify the order of images in the composite image, which uses a row-major ordering, i.e., first image is in (row 1, column 1), second image is in (row 1, column 2) (if there are more than one column), etc.
- If you specify a folder name (using the "from single folder" radio button), VIPBase will sort files (in that folder) by name in ascending order.
- If you use the default font type (Arial) and size (36) to label images, set "v_space=60" and "bottom margin=60 + actual margin". That will leave enough space to hold the labels.
A sequence of composite images
This function provides a batch processing of image composing. Suppose you have more than one folders and each folder contains a sequence of images. VIPBase can compose these sequences frame-wisely, i.e., the first images of all folders will be composed into the first composite image, the second images of all folders will be composed into the second composite image, etc.To use this function, specify the folder names in the edit box next to the "from multiple folders" radio button. If you edit directly in that box, press "CTRL+Enter" to enter a new line.
Trim an image
This function removes unwanted background pixels around the current image.In the following dialog, you can specify a region around the foreground area. First, click the "Select top-left corner" button and then click the top-left corner of the region you want on the image. Do the similar for the bottom-right corner. VIPBase will use the color of the top-left corner as the background color.
Or you can directly specify the background color by clicking the "Select color to be trimmed" and then click any background pixel on the image. VIPBase will consider the whole image as the selected region.

The trimmed result of the above example is shown here:

Slice an image
This function sliced the current image into smaller pieces with the specified size. Each piece is saved as a single BMP file.
One example is shown here.
The original image:

Each sliced piece:

Canny edge detection
This function applies Canny, one of the most widely used edge detection algorithms, to the current image. A good introduction to the Canny algorithm is here. For details, please refer to the original paper [1].In the following dialog, you can specify the kernel size and standard deviation of the Gaussian smoothing function. A larger kernel size will take more surrounding pixels into account for smoothing. A larger standard deviation will decrease the weight of the center pixel for smoothing.
The other two parameters you can play with are the high and low threshold that are used in the non-maximum suppression and the tracing part of the Canny algorithm. You will get more edge pixels by decreasing the thresholds.

The following figures show the results using different parameter settings. The first one is the result using the default parameters.
The original image (half sized):

Result using default parameters: kernel size=3, standard deviation=1, low threshold=12, high threshold=24

kernel size=3, standard deviation=1, low threshold=6, high threshold=12

kernel size=4, standard deviation=1, low threshold=10, high threshold=20

kernel size=5, standard deviation=2, low threshold=12, high threshold=24

Note that the Canny algorithm works on grayscale image only. VIPBase allows you to apply the Canny algorithm on each of the R,G,B channels and then combine three result images. To do this, check the "Detect edge in all three channels" option.
You can tell whether a pixel is an edge pixel in each of the R,G,B channels by its color. For example, a white (RGB=255,255,255) pixel means an edge pixel in all three channels; a yellow (RGB=255,255,0) means an edge pixel in R and G channels. So there are in total 8 possible colors in the result image. Result of the above example in all three channels is shown here.

VIPBase also supports other commonly used edge detection algorithms such as Sobel. See the documentation here
Reference
[1] Canny, J., A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714, 1986.
Emboss effect
This function applies emboss effect to the current image. The following dialog allows you to adjust the depth and direction of the effect. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following shows some results using different values of the depth and the direction.
depth=50, direction=north

depth=0, direction=north

depth=75, direction=south east

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
depth=50, direction=north

Halftone effect
This function converts the current image to a halftone image, which is a one-bit image that has been dithered for black and white printing or display.The following dialog allows you to adjust the pattern rotation angle and the type of halftone (print or view). You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following shows result using 135 degree of rotation angle and the printing type of halftone.

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Mosaic effect
This function applies mosaic effect to the current image. The following dialog allows you to adjust the block size. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following shows some results using different values of the block size.
size=8

size=16

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
size=4

Motion blur effect
This function applies motion blur effect to the current image. The following dialog allows you to adjust the size of the blur effect (in pixels), the direction of the motion (in hundredths of a degree. A positive value indicating a clockwise motion.), flag that indicates whether the motion extends only in one direction.
The following shows some results using different values of parameters.
size=30, direction=0, uni-direction=true

size=60, direction=3000, uni-direction=false

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
size=15, direction=1500, uni-direction=true

Oil painting effect
This function applies oil painting effect to the current image. The following dialog allows you to adjust the sample size. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following shows some results using different values of the sample size.
size=8

size=16

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
size=4

Posterize effect
This function applies poster effect to the current image by quantizing the image's colors to a specified number of color levels per plane. The following dialog allows you to adjust the levels. For example, two levels means two of red, two of green, and two of blue. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following shows some results using different levels.
levels=4

levels=16

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
levels=4

Solarize effect
This function applies an effect to the current image that mimics the accidental exposure of photographic film to light. The following dialog allows you to set a threshold. The function will invert a pixel's intensity (in R,G,B respectively) if it is larger than this threshold.
The following shows some results using different thresholds.
threshold=36

threshold=128

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.
threshold=128

Affine transformation
This function applies an affine transformation to the current image.An affine transformation consists of four sub-transformations: Scale, Stretch, Shear (in x or y direction) and rotation. The following dialog illustrates the exact meaning and matrix of each sub-transformation.

The overall transformation matrix is

or

One example of the affine transformation is show as follows.
The original image.

The image after the affine transformation. Scale=0.5, Stretch=1, Shear(y)=1.1, Rotate=10 degrees.

Note that the size of the result image can be very large. VIPBase sets an upper limit of 3600 pixels for the larger of the width and the height.
VIPBase also supports the perspective transformation, another widely used geometric transformation. See the documentation here.
Perspective transformation
This function applies a perspective transformation to the current image.A perspective transformation projects 3D points onto a 2D plane, which is used to simulate the relationship between an object and its image shot with a camera. A perspective transformation can be represented with a 3*4 transformation matrix M. The relationship between M and the camera parameters can be modeled as

Given M and a 3D point with coordinate (X,Y,Z), its imaged coordinate (x,y) can be computed as:

In the following dialog, you can specify these camera parameters and VIPBase will compute the projection matrix M or you can provide M yourself.
Note that if you used the camera calibration tool of VIPBase previously, the computed camera parameters will be automatically loaded here.

You can test the perspective transformation by providing points with known 3D and 2D coordinates (the groundtruth). After you click the "Project" button, the groundtruth 2D points and the projected 2D points are marked in red and blue, respectively. One example is shown here.

You can visually test the perspective transformation by generating images from virtual cameras. First, click the "Select region to reconstruct" button and select a region on the image. Then click any of the three buttons below to generate image from a virtual overhead camera in x, y or z direction. If you skip the step of "Select region to reconstruct", VIPBase will consider the whole source image. Be aware that this may result in very large images. VIPBase sets an upper limit of 3600 pixels for the larger of the width and the height. Examples of reconstructed images are shown here.

VIPBase also supports the Affine transformation, another widely used geometric transformation. See the documentation here.
Radial distortion removal
This function removes the radial lens distortion in the current image. Radial distortion means world lines are not imaged as lines. VIPBase uses the algorithm in [1].One example of an image before and after the radial distortion removal is shown here.

To remove radial distortion, click the "Pick a line" button in the following dialog then pick a distorted world line in the current image. Each line needs three points from one end to the other. To add one more line, click the button again and pick the new line.
Or you can directly type the coordinates of three points at each line. To add one more line, press "CTRL+Enter".

The following figure shows the picked lines that are used to generate the above result.

VIPBase supports the batch processing of radial distortion removal. See the documentation here.
Reference
[1] Richard Hartley, Andrew Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed., Chap. 7, Cambridge University Press, ISBN: 0521540518, 2004.
Change brightness
The following dialog allows you to change the brightness of the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
You can limit the change to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Image thresholding
The following dialog allows you to convert each channel of the current image to a binary bitmap using a pair of thresholds. In each channel, any pixel that is between the low and the high threshold is changed to white, otherwise to black. So the result image contains up to 8 unique colors. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following example shows an image before and after thresholding.
The original image:

The image after thresholding (low=128, high=255):

You can limit the change to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Image auto-thresholding
VIPBase can automatically decide a threshold [1] and convert the color image to a black and white bitmap. The following example shows an image before and after auto-thresholding.The original image:

The image after auto-thresholding:

Reference
[1] N. Otsu, "A Threshold Selection Method from Gray-Level Histograms," IEEE Transactions on Systems, Man, and Cybernetics, vol. 9, no. 1, pp. 62-66, 1979.
Image normalization
The following dialog allows you to normalize the current image according to the specified mean and standard deviation (std) of pixel values. The mean and std of the current image before the normalization are computed and displayed initially.
The following example shows an image before and after an increase of std value (similar to an increase of contrast).
The original image (mean=72.6, std=64.1):

After normalization (mean=72.6, std=128):

Change image contrast
The following dialog allows you to change the contrast of the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following example shows an image before and after contrast change.
The original image:

After contrast change:

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Change Gamma value
The following dialog allows you to change Gamma value of the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following example shows an image before and after Gamma change.
The original image:

After Gamma change (blue=25):

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Change image hue
The following dialog allows you to change the hue of the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following example shows an image before and after hue change.
The original image:

After hue change:

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Change image saturation
The following dialog allows you to change the saturation of the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The following example shows an image before and after saturation change.
The original image:

After saturation change (+64%):

After saturation change (-32%):

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Display histogram
VIPBase can display the histogram of each of the R,G,B channel as well as the intensity values of the current image.The following figures are the histograms of the intensity and B channel of the image shown here. You can see the count of each pixel value by moving the mouse cursor.

The histogram of the intensity values.

The histogram of the B channel.

Histogram Equalization
This function applies Histogram Equalization to the current image. The following example shows an image before and after histogram equalization.The original image:

The image after histogram equalization:

Label images
This function labels multiple images.In the dialog shown here, you can either select multiple files or specify a folder name to label all images in that folder (including subfolders). You can only include certain types of files in that folder by giving the file extension. For example, to include all jpg files, use "jpg"; to include all jpg as well as bmp files, use "jpg;bmp"; to include all jpg files and exclude all bmp files, use "jpg;-bmp"; to include all but bmp files, use "-bmp". Leaving the extension box blank will include all files (same as "*.*").

Labels are stored in a text file. Each line of the text file contains labels for each image. You need to specify the horizontal position (left, center or right) and the vertical position (top, center or bottom) for each label. Multiple labels are separated by ";". You can specify the text file name in the "Text file" edit box.
The following example draws two labels on one image. The first one is "2006.05.07" on the top-left corner and the second is "Congress Center (Graz)" on the bottom-right corner. The labels should be:
left,top,2006.05.07;right,bottom,Congress Center (Graz)
After you click the "Label" button, you can choose the font type, size and color of the labels. The following figure shows the labeled results of the above example.

The labeled images are saved in the folder that you specified in the "Save to folder" edit box.
Morphological operations
The following dialog allows you to apply the morphological operations to the current image, including dilation, erosion, open, close and skeletonize.
Since morphological operations are performed on a binary image, you need to specify a threshold to convert the current image to black and white. Or this threshold can be decided automatically by VIPBase.
You also need to specify the background color. Morphological operations apply to the foreground pixels only. For example, the "erosion" operation erodes foreground pixels. The following example shows the results of all operations with black or white background color.
The original image:

The result of each morphological operation.


The result image is saved to the file that you specified at the bottom of the dialog.
Add image noise
The following dialog allows you to add random noise to the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
You can specify the level of noise and which channel (Master,R,G,or B) you want to add noise to. For example, the result of adding noise to the master channel of the following image is shown here.
The original image:

After noise (level=32) is added:

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Median filtering
The following dialog allows you to apply a median filter to the current image. You can see the result (the whole image or part of image at full size) instantly from the preview window.
The median filter is widely used for removing salt-and-pepper type of noise. You can specify the sample size of the filter. A larger sample size works better for noise removal, however, it also makes the blurring effect more visible. So a filter with sample size 3 will be a good starting point.
The following example shows an image before and after the median filtering.
The original image with noise:

After a median filter (with sample size 3) is applied:

You can limit the effect to the selected region. First select the region using the selection tool and then apply this function. One example is shown here.

Add photo frame
This function adds a frame to the current image. One example of the added frame is shown as follows.
The interface of this function is very simple. The only parameter that you can play with is the intensity of the shadow, which has a floating point value between 0 and 1. The above example uses 1. The following two use 0 and 0.5, respectively.



Display image information
This function shows information of the current image, including general information such as resolution, size and image format as well as EXIF information (if there is any).One example is shown here.

View image in text
This function displays each pixel value (either in grayscale or RGB) of the current image in a plain text file. This can be very useful when you debug your image processing algorithms.In the following dialog, you can choose to display or hide the position of each pixel in the text file.

Examples of both options are shown as follows.
A text file with pixel position. The first line of the file shows the size of the image.

A text file without pixel position.

For an image with the "BMP" format, you need to check the "Flip vertically" option because an image is vertically inverted in the BMP format.
User defined filter
The following dialog allows you to define your own image filters.
The meaning of each parameter is illustrated as follows.

After applying the filter, pixel value of the center of the sliding window becomes
. So divisor can not be zero.
Pre-defined filters
VIPBase has pre-defined some well known image filters, including

Batch image processing
VIPBase can process multiple images in batch mode. Note that so far it only supports two functions: "Canny edge detection" and "Radial distortion removal".- In the dialog shown here, you can specify either a text file that contains the list of files to be processed, or a folder so that all images in that folder (including subfolders) will be processed. You can only include certain types of files in that folder by giving the file extension. For example, to include all jpg files, use "jpg"; to include all jpg as well as bmp files, use "jpg;bmp"; to include all jpg files and exclude all bmp files, use "jpg;-bmp"; to include all but bmp files, use "-bmp". Leaving the extension box blank will include all files (same as "*.*").

- Click the "Load" button to load the file list.
- Select the destination folder. You can choose to delete all source files after the processing. (Backup your files before doing this!!)
- Choose the function and the usage of that function will show up.
- Set the parameters according to the usage.
- Click the "Run" button to start the batch processing. The progress is shown in the following dialog. You can stop the process by clicking the "Stop" button.

Extract video frames
This function allows you to extract frames from a video file. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the source video file, the output folder, the first and the last frame of the segment you want to extract. If you want to extract the whole sequence and don't know the exact length of the sequence, just set a very large number as the last frame.

- Click the "Extract" button to extract each frame within the specified range. Each extracted frame will be saved as a single BMP file in the output folder.
- The progress is shown in the following dialog. You can stop the process by clicking the "Stop" button.

Create a video from images
This function allows you to create a video from a sequence of images. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, you can either select multiple files or specify a folder name to include all images in that folder including subfolders. You can only include certain types of files in that folder by giving the file extension. For example, to include all jpg files, use "jpg"; to include all jpg as well as bmp files, use "jpg;bmp"; to include all jpg files and exclude all bmp files, use "jpg;-bmp"; to include all but bmp files, use "-bmp". Leaving the extension box blank will include all files (same as "*.*").

Note that images that have been found by VIPBase are sorted by name in ascending order. These files should be compatible in the created video, which means they should have the same width, height and image type (24-bit color or 8-bit grayscale). VIPBase decides the above information based on the first image on the list. Any image with different width, height or number of bits per pixel will be disregarded.
- Uncheck the "Batch mode" option.
- Specify the output video file name and the frame rate.
- If you want to compress the output video using some specific codec, check the "Specify video format" option. A dialog will show up as follows, allowing you to specify the video codec you want.

Otherwise, leave it unchecked. By default, VIPBase will try to compress the video using the "Microsoft Mpeg-4 Video Codec V2". It is a highly recommended codec for its high compression rate and high image quality. You may need to download the codec from Microsoft's website. If this codec is not found on your computer, VIPBase will compress the video using the "Microsoft video 1" codec, which is usually available on your computer.
Note that if the width of the video is not divisible by 4, the video will not be compressed properly using the Microsoft Mpeg4 codec. (I think this is a bug of the codec.) Therefore, you are prompted to truncate the width to the closest multiple of 4. If you don't want to do so, just click No.
Create videos in batch mode
By checking the "Batch mode" option, you can create multiple videos in batch mode. Each video corresponds to one image sequence in the same folder. For example, suppose you have image files as shown on the left of the following list. VIPBase will generate three videos, corresponding to the sequences in "c:\input\1", "c:\input\2" and "c:\input", respectively and the videos have the same path names as the folders, as shown on the right of the list.
Split a video
This function allows you to split a long video into several shorter videos with equal length. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the source video file, the output folder, the first and the last frame of the range you want to split. If you want to split the whole sequence and don't know the exact length of the sequence, just set a very large number as the last frame.

- Specify the number of result segments and number of overlapped frames between each two successive segments. The following figure illustrates one example in which a sequence with 14 frames is split into 3 segments with 2 overlapped frames.

- Click the "Split" button to start the process.
Merge videos
This function allows you to concatenate several videos into a single video. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the input folder (which contains source video files) and the result video file name.
Note that videos that have been found by VIPBase are sorted by name in ascending order. These files should be compatible, which means they should have the same width, height and image type (24-bit color or 8-bit grayscale). VIPBase decides the above information based on the first video on the list. Any video with different width, height or number of bits per pixel will be disregarded.
- The parameter "Overlap" means the number of overlapped frames between each two successive segments. The parameter "Offset" means the number of the disregarded frames in the beginning of each video (starting from the second file). The following figures illustrate two examples of the same three videos being concatenated. These two examples have the same number of overlapped frames but the offsets in these two examples are 1 and 0, respectively.
- Click the "Merge" button to start the process.
Combine two videos
This function allows you to combine two videos pixel-wisely. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify two source videos and the result video, the first and the last frame of the segment you want to combine. If you want to combine the whole sequence and don't know the exact length of the sequence, just set a very large number as the last frame.

Note that:
- The two source videos should have the same width, height and image type (24-bit color or 8-bit grayscale).
- If the lengths of the two source videos are different, the shorter one will be considered.
- Select the operation type. Currently, only max and min operation are supported.
- Click the "Combine" button to start the process.
Crop images from a video
This function allows you to crop images from a video file if the positions of the images are given. This can be useful when you work on an object tracking project: Given the video and the tracking trajectory of each object, you can get the images containing the tracked objects. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the source video file, the trajectory file and the output folder.

- The trajectory file is a text file containing the positions of the images that need to be cropped. Each line of the trajectory file has the following information: the object id, the frame number and bounding box (left, top, right, bottom) of the object. One example of such trajectory files is shown here.

- You can filter out unwanted (e.g. too small) images by specifying a lower limit on the size of the cropped images.
- By checking the "Discard those out of boundary" option, you can eliminate those bounding boxes that are beyond the boundary of a video frame.
- If you check the "Crop images in two successive frames" option, for each bounding box, VIPBase will crop a pair of images in the current frame and in the previous frame.
- Click the "Crop" button to start the process. Each cropped image is saved as a single BMP file with name "xxx_yyyyyy.bmp". "xxx" is the object id and "yyyyy" is the frame number. Examples of cropped images are shown as follows.

Compute video gradient
This function allows you to compute the gradient of a video. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the input video, the output video, the first and the last frame of the segment you want to process. If you want to process the whole input sequence and don't know the exact length of the sequence, just set a very large number as the last frame.

- Specify the weight of each component. VIPBase computes gradient in horizontal, vertical and temporal direction and the final value at each pixel is the weighted sum of these three components.
- You can select which channel the function should apply to. It can be the intensity, R, G, B channel or the max of (R,G,B).
- For each pixel in the result video, if its final gradient value is lower than the threshold specified in the output settings, the value is set to 0; otherwise, it is increased by the value specified in the "Brightness gain" box.
- Click the "Get gradient" button to start the process.
The following figure shows some frames with computed gradient. Notice the difference between this function and the edge detection algorithm. This function considers not only the spatial but also the temporal gradient. The edges on the ground plane are largely eliminated because we assign more weight to the temporal gradient.

- This function can run in batch mode. Check the "Batch mode" and specify the input folder and the output folder (instead of the input video and the output video).
Label a video
This function allows you to draw text labels on a video. Note that only videos with the Video for Windows (VFW) format are supported. The extension of a VFW video usually is "avi".- In the following dialog, specify the input video, output video and the label text file.

- The label file is a plain text file. Each line contains labels for each frame. You need to specify the horizontal position (left, center or right) and the vertical position (top, center or bottom) for each label. Multiple labels are separated by ";". See here for more details of how to write labels.
AlbumCreator
VIPBase offers a fully functional yet easy to use utility, called AlbumCreator, for creating web albums. See here for a sample album.AlbumCreator stands itself out from other popular softwares or services of the same kind (such as PBase, Gallery, JAlbum and Picasa) in following ways:
- Unlike server based solutions, AlbumCreator generates albums on your hard drive, so you can view and edit your albums locally without any scripting support.
- Albums generated by AlbumCreator are pure html and jpeg files. The only thing you need to view the albums is your web browser. Because all links in the html files are relative links, uploading your albums onto any website is a no-brainer: you don't need to change anything.
- AlbumCreator supports subfolders and the hierarchical structure of the source folder is completely preserved in the generated html files, which means you can navigate through the album just like what you do in a Windows explorer. AlbumCreator also provides a way to sequentially browse the whole album just by clicking the previous or the next link.
- AlbumCreator automatically generates thumbnails for folders and images. You can set the title for each folder and image, or just use the folder or file name as the title. For each image, you can specify additional information such as date, place and detailed description of the image.
- AlbumCreator can add watermark and frame to each image. It also supports displaying of EXIF information
- AlbumCreator is super fast and extremely easy to use.

The following tutorial shows you how to create an album in three simple steps.
- Step 1: Specify information about the album. (Items with * are required information.)
- Image and output folder: Image folder is the input folder where your images are stored. It can have subfolders. Output folder is the folder where the album will be saved. Initially it should be empty.
- Background: You can use a plain background with the color you specified. The color is 3 hex-pairs for red, green and blue. For example, white is "FFFFFF" and black is "000000". If you are not sure about this, just use white.
Or you can use a background image (in GIF or JPEG format). The background image will be tiled to fill the whole visible area of your web browser.
- Image size: You may want to resize your images to a smaller size for two reasons: First, images with full resolution waste a lot of bandwidth for uploading and downloading and they are difficult to browse on a not so large screen. Second, you may want to protect your images (from being pirated) by keeping the full resolution version only to yourself. You can resize image either to a specified width or to a specified height. The other dimension will be resized proportionally.
However, if you want to share the full resolution images anyway, just put zero in the box.
- Thumbnail size: Specify the size of thumbnails. Thumbnails with height of 120 pixels would be a good choice.
- Columns per row: Usually 4 thumbnails per row makes your pages look nicely spaced.
- HTML extension: When someone visits your album website (e.g. www.yourphoto.net), your hosting web server will automatically redirect this domain name to the root index page of your album, which is usually index.htm or index.html, depending on the web server's setting on the default extension of HTML files. If you know this setting, choose the right one, otherwise, choose either one. Just provide the full URL (e.g. www.yourphoto.net/index.htm or www.yourphoto.net/index.html) in the link to your website.
- Draw frame: If this option is on, AlbumCreator will draw a nice looking frame on each image. See one example here.
- EXIF: If this option is on, AlbumCreator will display the EXIF information (if there is any) on each image page. One example is shown here.

- Auto color: If this option is on, AlbumCreator will automatically adjusts the contrast and color of each image.
- Numbering: If this option is on, a unique index number for each image will be displayed on each image page.
- Show file name: If this option is on, the file name of each image will be displayed on each image page.
- Album title and Owner name: These information will be displayed in the title section as well as the copyright section of each page.
- Email: You can leave your contact email address, which will be displayed in the copyright section at the bottom of each page. If you don't want this email to be scanned by a spam email crawler, you can use an image (in GIF or JPEG format) of this address instead of text. AlbumCreator will decide whether this is an image file or real text.
- Watermark: You can specify a watermark image, which will be overlaid on the bottom-right corner of each image. Watermark image provides a way to claim your copyright of your photos by imposing information such as your name on the images. One example is shown here.
The watermark image.

The image being watermarked.

- Step 2: Create thumbnail images and specify information about each image
After you provide all necessary information in the previous step, click the "Create Thumbnails" button. This will resize all images, generate thumbnail images and copy them to the output folder. If you have hundreds of images, this will take a while. The progress is displayed in a popup window.
After this is done, the information of each processed image will be displayed in the list bar of VIPBase, as shown below.

Now you have an opportunity to edit information such as the title, date, place and detailed description of each image. When you navigate through the image list using the UP and DOWN key, the current image will be displayed accordingly.
Tip: Instead of editing such information in VIPBase, you can do it a text editor.
- Close the AlbumCreator by clicking the "Close" button. Click "Yes" to save setting.
- Go to the output folder, you will find a text file with name "index_yyyy_mm_dd_hh_mm_ss.txt". Open it with your favorite text editor."
- The file contains the same information as in the list bar. Edit it and save it.
- Run AlbumCreator again and AlbumCreator will load the text file into the list bar.
- Step 3: Create the album
After you are done with the editing, click the "Create Album" button to generate the html files. When finished, the album will be opened in your web browser.
Note that:
- AlbumCreator completely preserves the hierarchical structure of the source folder in the generated html files, which means you can navigate through the album just like what you do in a Windows explorer. For example, suppose we select "c:\photo" as the input folder and "c:\album" as the output folder. "C:\photo" contains the following images.

The following figure illustrates the hierarchical structure of the input folder and the output folder after the album is created.

For each image, three files are created: the resized image, the thumbnail image and the html file (called an image page). For each folder, an index page (shown in red) is created which shows the thumbnails of its images and subfolders.
AlbumCreator sorts files in the same folder by name in ascending order. The thumbnail of the folder (except the root folder) is the thumbnail of the first image on the sorted list (shown in blue).
On the top-left corner of each page (either folder index page or image page), the path from the root page to the current page is shown. So you clearly know where you are and you can go to any ancestor folder directly by click its link. Because AlbumCreator use relative path instead of absolute path, when you upload your album to a website, you don't need to change anything.
- AlbumCreator also provides a way to sequentially browse the whole album just by clicking the previous or the next link on each image page.
- AlbumCreator completely preserves the hierarchical structure of the source folder in the generated html files, which means you can navigate through the album just like what you do in a Windows explorer. For example, suppose we select "c:\photo" as the input folder and "c:\album" as the output folder. "C:\photo" contains the following images.
The index page of the root folder "c:\album".
















