User Guide for Capture GUI Program


1. Getting Started
1.1 Launching the program
1.2 Overview of Interface
1.3 Starting, Opening and Saving a Project

2. Capturing
2.1 Capture from Video
2.2 Viewing and Removing Images

3. Calibration
3.1 Calibrating Images

4. Segmentation
4.1 Segmenting Images
4.2 Acquiring Geometry

5. Textures
5.1 Acquiring Texture

6. Rendering
6.1 Export to File
6.2 View Rendered Model


1. Getting Started

1.1 Launching the Program
Type gui on the command prompt to launch the program. To immediately load an existing or a new project at startup, type in the path name to the project as an argument:
gui projectpath
If no path name is provided, the program will use the directory ‘capture_project’ by default.

1.2 Overview of Interface

All basic operations can be performed using the toolbar. The left panel will show a list of the images captured/calibrated/segmented. The right panel will show the image selected from the left panel (if any). Right-clicking in the left panel will display a menu that contains the operations needed to complete each step of the process. The toolbar on top contains the basic operations such as Open and Save, and buttons on the right allows for switching between modes of operation (Capture, Segment, Geometry, Texture/Chart).

1.3 Starting, Opening and Saving Projects

Select New from the File menu or click on the New button on the toolbar to start a new project.

To open an existing project, select Open from the File menu or click on Open on the toolbar to show the dialog box where the path name to the existing project can be typed in or selected. Click OK to load the existing project.

To save a new project, select Save As from the File menu and a dialog box will show. Select or type the path name to the project in the dialog box and click OK.

To save an existing project, simply select Save from the File menu or click on Save on the toolbar.

^ Back to Top


2. Capturing
Capturing involves taking a series of images from a video camera of a rotating object.

Ensure the program is currently in Capture mode to perform the following capturing operations. Click on the Capture button on the toolbar to get into Capture mode.

2.1 Capture from Video
On the top left panel under ‘Images’, right click and select Capture from the popup menu. A dialog will appear which displays a number of options for capturing.

Select the Camera, Format and Mode. Leaving them as the default will be fine in most cases.

With the selected camera, the program will take a sequence of still images. The number of images that the program will take is specified in the #Images field, while the time the program waits to take each subsequent image is specified in the Delay field.

The rotating object in front of the camera should be centered on screen. It is important to ensure that the sequence of images that the program captures contain one revolution of the object. This can be controlled by the #Images and Delay fields. The lower the number of images, the higher the delay would have to be to ensure that one revolution is captured. Delay is also affected by how fast the object is rotating.

The higher the number of images is taken for one revolution, the higher the quality of the model. However, processing time would be higher as well. In most cases, 64 images per revolution will produce a decent model.

When all options are set, click on Grab to capture the images. As the program captures each image, it will list it on the left panel under Images.

Tips for Capturing:
Capture more than one revolution of images and delete the excess, instead of trying to capture exactly one revolution. For example, if it is known that one revolution takes approximately 64 images, instead of setting #Images to exactly 64, set it to 70 instead. 70 images will allow for more margin of error and it can be certain to capture at least one revolution.

Ensure the object get plenty of indirect lighting, which will help the calibration. Dark images are more difficult to calibrate. Adjust the camera brightness setting if necessary. The object should also not get any direct lighting since it may cause unwanted reflections.

The object should always be centered in the black dot pattern. It is best for the object not to cover any dots.

The object and the background should be of different colours; otherwise problems may occur in segmentation.

2.2 Viewing and Removing Images

After the program finishes capturing from video, each image can be viewed by selecting it on the Images list on the left panel. The images can be played as an animated sequence by right-clicking in the Images panel and selecting Play.

Only one revolution of the object is required for the subsequent steps. Therefore, if the sequence form more than one revolution, find which image the one revolution ends at and delete all subsequent images by selecting them on the Images panel and select Remove Selected in the right click menu. For example, if 75 images were taken but the rotating object completes one revolution at image 70, select images 71-75 and remove them. Always remove from the end of the sequence and not from the start (e.g. removing images 71-75 instead of images 0-4) since the program assumes the image sequence will always start at image 0.

If the image sequence captured does not form one complete revolution, then a new sequence must be captured. However, before capturing a new sequence, remove all the existing images first - otherwise they will stay in the Images list. To clear all images from the Images panel, right-click on the Images panel and select Select All from the popup menu, then right click again and select Remove Selected from the popup menu. When all images are removed, repeat the capture procedure as outlined in 2.1 to capture a new sequence.

^ Back to Top


3. Calibration
Calibrating all the images taken will help the program determine the viewpoint of the camera when looking at the object in each image.

Ensure the program is currently in Capture mode to perform the following calibration operations. Click on the Capture button on the toolbar to get into Capture mode. Also ensure there is a sequence of images captured by the camera that contains the views of one revolution of the rotating object.

3.1 Calibrating Images
To calibrate all images at once, right click on the Images panel and select Select All from the popup menu. Right click again and select Calibrate. This will bring up a dialog box.
(To calibrate only one image, simply omit the Select All step. Select the image of your choice on the list and select Calibrate.)

Along with the dialog box, a residual value and white lines will appear on the image. The white lines locate the lines of black dots on the surface of which the object sits on. By locating these lines of black dots the program can determine the viewpoint of the camera, thus it is ideal to have as much of these lines located correctly as possible. Generally, three white lines over three lines of black dots is acceptable, but having more than three would be better. Also take note of the residual value; a value below 0.1 is ideal, but a value around 0.2 or lower would be acceptable. The white lines and the residual are affected by the threshold, which is adjusted using the slider bar in the dialog box.

To calibrate an image, move the threshold slider bar on the dialog box. The residual value and the locator white lines will change on the image accordingly. Once the desired residual values and lines are found, press OK to accept.

To save the tedious task of manually calibrating each image, calibrate all images at once and enable the Automatic checkbox to let the program calibrate the images automatically. However, the program does not necessarily take the best calibration; it simply adjusts the threshold and takes the first acceptable calibration that it can find, which is usually any residual value below 0.3 and at least three locator white lines. Thus, calibrating manually can produce better results if efforts were put in to find the best calibration for each image.

Once an image is calibrated it will be moved to the Calibrated Images list on the bottom left panel. Selecting an image from the Calibrated Images panel will display that image along with its residual values and the white lines identified. If the image went through automatic calibration and the result is not so ideal, select that image, right-click, and remove it by selecting Remove Selected from the popup menu. It will be moved back to the Images panel on top, and it can be taken through the calibration process again.

If difficulties arise in calibrating an image, change the Small and Large Sizes may help. Usually setting Small as 5 and Large as 200 will work in most cases; if not, try with different Small and Large values, or manipulate the range between the two values. Every image is different; one setting may work for one case and not the other, so experiment with these values to obtain a good residual values and a good number of lines identified.

Tips on Calibration:
Generally, try to find a good balance between white lines located and residual values. If one threshold value produces three lines and a very small residual value, and another threshold value produces ten lines with a slightly higher residual, then it is usually better to pick the threshold that identifies ten lines instead of the three.
^ Back to Top


4. Segmentation
Segmentation involves taking the calibrated images and getting the program to try to separate the background from the object. It is done by defining a colour space that represents the background. After the images are all segmented, the geometry can be determined.

4.1 Segmenting Images
Ensure the program is in Segmenting mode to perform the following segmentation operations. Click on the Segmenting button on the toolbar to get into Segmenting mode. Also ensure all images are calibrated and appears in the Calibrated Images list in the top left panel.

To segment an image, select the desired image, right-click and select Segment from the menu. A dialog box will appear. To segment all image at once, use Select All from the right-click menu first before selecting Segment.

Click Add in the dialog box to add a new region, then left-click on the image and drag to select a rectangular area. The colours of the pixels within the selected region would be interpreted as part of the colour space of the background; therefore it is important to only select the background. Also, do not select any of the black dots on the surface.

The image will immediately update with the new segmentation upon adding each new region. Ensure there are no holes on the object.


Usually, segmenting the object from the background requires multiple regions – just keep using Add in the dialog box to create new regions. To delete an existing region, select it from the region list and click Remove in the dialog box.

To achieve a good geometry, segment the object from the background so that a clear contour between the object and background can be seen; otherwise bits of the background will appear in the final geometry.


When enough regions are created to get a good contour, click on OK in the dialog box to segment the image. If multiple images are segmented at once, the program will display each image with the segmentation one at a time. Ensure all images does not have holes going through the object, since some colour space regions may work for one image and not the other. If this occurs, remove the images with holes from the Segmented Images list in the bottom left panel and repeat the segment process again for those images. Each segmented image can be reviewed by simply selecting them in the Segmented Images panel.

Tips on Segmenting:
Usually a few images will be harder to segment than others in the sequence. Segment all images at once first, then review them to check which ones have holes on the object, or have a bad contour of the object. Remove the problematic images and segment them again with different regions.

Also, regions that works on the image(s) that is the hardest to segment (that is, the image that is easiest to have holes) will likely work well in all other images in the segment as well. Try to find the most problematic image to segment first, and segment it so that it does not have any holes and have a good contour. Then, segment the rest of the images using the same regions – they will usually pass through without getting any holes.

4.2 Acquiring Model Geometry
Ensure the program is in Geometry mode to perform the following operations. Click on the Geometry button on the toolbar to get into Geometry mode. Also ensure all images are calibrated and segmented.


Click on Apply on the top left panel to acquire the geometry from the segmented images. One of the segmented images will appear along with a bounding box and a list of regions as specified in the segmenting process. Ensure the bounding box encloses the object; hold the left mouse button and drag to move the box up and down, and hold the right mouse button and drag left or right to resize the box. The yellow stationary line indicates the ground plane. Once the bounding box is made to enclose the entire object, click on OK on the dialog box to get the geometry.

After the geometry is calculated, it will be displayed in the main window. Right-clicking on the geometry will bring up a number of viewing options, which simply provide different modes of view of the model. (Note: Textures would not be shown if the texturing step has not been carried out yet and no charts are created yet – see 5.1 on how to do so.)

Hold the left mouse button and drag to rotate the model; hold the Ctrl button + left mouse button together and drag to scale model.


If there appears to be a lot of artifacts in the geometry, simplifying it may solve the problem. On the bottom left panel under Simplify, type in a percentage to remove and click Apply to simplify the geometry. If the geometry got too simplified or it end up looking worse than the original, to restore the original geometry, simply click on the Other tab on the bottom left panel and click on Restore.

Tips on Acquiring Geometry:
Artifacts and coarseness in the geometry of the model can be fixed with texturing, thus if the object appears coarse, apply texturing first before determining whether or not the geometry really needs to be corrected or changed.

If there appears to be some artifacts left by the surface which the object sits on, raising the bounding box slightly higher from the ground plane may help.

^ Back to Top


5. Textures
To apply dynamic texturing onto the model, the surface of the model has to be split and flatten into 2D so texture images can be applied. Splitting the model produces charts, which is obtained in the following process.

Ensure the program is in Texture/Chart mode to perform the following operations. Click on the Texture/Chart button on the toolbar to get into the Texture/Chart mode. Also ensure that geometry has already been obtained.

5.1 Acquiring Textures
Click on the Split button under the Operations panel on the bottom left corner. The charts will be calculated and displayed.

Charts with red region indicate an area of overlap, which would cause a problem in the rendered model. Ensure no two charts are overlapping each other – a chart on screen can be dragged and move around by holding the left-click button on it and drag in the desired direction. Use this method to separate any two overlapping charts. Also ensure all charts sit within the bounding box.

If there is a chart that contains an overlap within itself, it is best to try to correct it. First check where the overlap occurs. Return to Geometry mode, right-click on the model and enable Draw Texture in the popup menu. The charts would be drawn onto the model along any red overlapping areas. If a chart was selected previously in Chart mode, that particular chart would be highlighted green in the model.

If the overlapping area is very small or lies mostly in the bottom or areas on the model that are not too visible to the viewer, it will likely be fine to leave it without correction as it may not be too noticeable on the resulting rendered model.

However, if the overlap is very visible on the model, it should be corrected. Methods of correction can include:

1. Simplifying the model
As outlined in 4.2, simply the geometry by applying the Simplify operation under Geometry mode. Along with changing the geometry, this will cause the charts to change as well which may help correct the overlap problem. After applying the Simplify Operation, return to Chart mode and click on Split again to get the new texture. Even a 1% difference in simplification can sometimes drastically change the charts, thus experiment with different simplification percentage. However, the higher the percentage, the more coarse the geometry becomes, which may cause it to look very different from the actual object.

2. Splitting Options

Select the Distance checkbox and click Split. This is a different method in determining charts and may or may not help with reducing overlaps.

3. Mapping

Click on the Map tab, change between LSCM and MDS and click Map. These are different mapping methods, but like Splitting by Distance, changing it may or may not help reduce overlaps.

If none of the above methods reduces overlaps, consider returning to the segmentation or calibration steps and do them all over again with different thresholds and background colour region. If a lot of problem arises then consider capturing a completely new video and try again.

^ Back to Top
6. Rendering
When all steps are completed and the model is satisfactory, the model can be rendered into the final product and viewed with the proper texturing.

6.1 Exporting to a Rendering File
From the File menu, select Export. A dialog will appear with a number of options.

The higher the texture sizes and the # vectors, the better the model, but it will also increase the file size. Texture size of 256 and # Vectors of 64 will produce a fairly good model. It is best to use values that are powers of 2 for the YUV fields in texture size and # vectors, and the Y,U,V values of the texture size should be equal.

Under the Lookup Table options, Lut size should be set to 128x2, and the Use Original Lut checkbox should be checked with Linear selected.

Click Save to render the model. As the program renders it will display the textures on screen. Do NOT move, minimize or resize the program when it renders; otherwise the resulting textures will be distorted since the program reads the pixels currently on screen. Also, do not move another window of any other program over it as that will disrupt the rendering process as well.

The status bar on the bottom right corner shows the progress of the rendering. When the rendering process is complete, the program will return to the last screen where Export was called. (e.g. if the program was in Geometry mode when Export was called, it will return to Geometry mode). The output is saved in a directory called ‘output’ which is in the same directory as where the project is saved in.

6.2 Viewing the Rendered Model
On a command prompt, type in the following command to load the Renderer with the rendered model:

yuv projectpathname/output
where projectpathname is the path to the project. The Renderer will load the rendered model; hold the left mouse button and drag to rotate the model; hold the middle mouse button and drag to translate the model; and hold the right mouse button and drag to scale model.

To save the model as a .yxv file, select Save from the Main menu, enter a file name and click Save to create the new .yxv file. When the .yxv file is created, it can be loaded to the Renderer using the following command:

yuv myfilename.yxv
where myfilename is the name of the .yxv file.

^ Back to Top