Download Latest Version surfacedefectsanalyzer_025_source.zip (2.0 MB)
Email in envelope

Get an email when there's a new version of Surface Defects Analyzer

Home / builds / 0.25
Name Modified Size InfoDownloads / Week
Parent folder
surfacedefectsanalyzer_025_build_win32.zip 2010-07-10 12.0 MB
readme_en.txt 2010-07-10 12.9 kB
readme_ru.txt 2010-07-10 13.6 kB
Totals: 3 Items   12.1 MB 0
-------------------------------------------------------------------------------
  Surface Defects Analyzer v0.25 Readme

  Date: 09.07.2010

  Author: Alexander [Stone] Denisov
-------------------------------------------------------------------------------

Content:

1. Description
2. Application installation
3. Source code
4. License information
5. Links
6. Changelog

-------------------------------------------------------------------------------
1. Description

Surface Defects Analyzer is the project of control system implementation which
is used for detecting and measurement of geometric parameters of surface
defects based on stereo images processing.

Project is a cross-platform system that supports plug-ins of different types
for special data processing needed by different types of surfaces.

Processing is split into three main stages:
1) Preprocessing - quality improvements of stereo images;
2) Surface analysis - here the rectified projection is built, defects can be
selected and measured;
3) Defect shape analysis - here all the main measurement are taken, special
plug-in is used to restore the 3D shape of defect, it is used to observe defect
shape itself and to measure its depth. Final summary report can be obtained
on this stage.

Currently implemented surface type is "Road".

Implemented and not implemented features:
[*] Creation of projects and stereo images, saving of configuration;
[*] Preprocessing: swapping of images, median filtering, levels adjustment
    using histogram, supports auto-configuration;
[*] Image manipulation (zooming, panning, saving);
[*] 3D preview - scene manipulation, importing/exporting of 3D models;
[*] Additional functionality: logging, configuring, localization support,
    plugins management, etc.;
[ ] Rectified projection calculation - currently works only for given example
    (placeholder);
[ ] Automated selection ("Mark defect"). The feature should be implemented in
    "Surface analysis" plugin type;
[ ] 3D shape restoration. Actually one of the main features but still is not
    implemented, now just using placeholder 3D model. The feature should be
    implemented in "3D Shape Restoration" plugin.

-------------------------------------------------------------------------------
2. Application installation

To make your application work on any system you should supply it with
additional dynamic link libraries used by application:
* Qt ( QtOpenGL4, QtGui4, QtXml4, QtCore4 );
* OpenCV ( highgui210, cv210, cxcore210 )
  Note: make sure to recompile highgui with the changes in its source code
  according to files included in the project;
* Intel IPP (if used and linked not statically);
* Microsoft Visual C++ (if compiled on Windows platforms using Microsoft Visual
  C++ compiler).

-------------------------------------------------------------------------------
3. Source code

In order to compile the project you should either use Microsoft Visual Studio
and Qt add-in or configure Qt project file (.pro) manually.

When developing the project the following versions of software were used:
* Qt: 4.5.3
* OpenCV: 2.1.0

-------------------------------------------------------------------------------
4. License information

OpenCV license information is given in "opencv_license.txt".
Qt is distributed via LGPL license.

Surface Defects Analyzer is the property of Alexander [Stone] Denisov
(stone33@mail.ru) and is distributed "As is". You can use and modify it on
your own risk. You are also free to use any portions of source code not covered
by licenses above and please if you use it for your projects - just let me know
by email.
Using the application and its source code you confirm the license agreement.

-------------------------------------------------------------------------------
5. Links

Links to useful stuff for better understanding what's going on in the code and
for future development:

1)  C. Harris and M. Stephens. A combined corner and edge detection.
    // Proceedings of The Fourth Alvey Vision Conference, 1988. – P.147-151.
2)  Li Zhang, Brian Curless, Steven M. Seitz. Rapid Shape Acquisition Using
    Color Structured Light and Multi-pass Dynamic Programming.
    // 1st international symposium on 3D data processing, visualization, and
    transmission, Padova, Italy, June 19-21, 2002.
    (http://grail.cs.washington.edu/pub/papers/Zhang-2002-RSA.pdf).
3)  OpenCV Reference Manual, 2010. – 1104p.
4)  Qt reference (Qt Assistant).
5)  M. Kass, A. Witkin, D. Terzopoulos. Snakes: Active Contour Models.
    // International Journal of Computer Vision, v.1, 1987. – P.321-331.
6)  C. Xu, J.L. Prince. Snakes, Shapes, and Gradient Vector Flow.
    // IEEE Trans. on Image Processing, v.7, #3, 1998. – P.359-369.
7)  E.V. Zaugolnova, D.V. Yurin. Algorithm for Refinement of Preliminary
    Segmentation of Images with Smooth, Low Contrast 2D Objects Boundaries.
    – In proc. Graphicon, 2006.
8)  H. Christopher Longuet-Higgins. A computer algorithm for reconstructing
    a scene from two projections. // Nature, 293, 1981. – P.133–135.
    (http://www.nature.com/doifinder/10.1038/293133a0).
9)  Bob Fisher. The Essential Matrix, 1997. (http://homepages.inf.ed.ac.uk/
    rbf/CVonline/LOCAL_COPIES/EPSRC_SSAZ/node21.html).
10) A Generic Sparse Bundle Adjustment C/C++ Package Based on the
    Levenberg-Marquardt Algorithm. (http://www.ics.forth.gr/~lourakis/sba).
11) Abhijit S. Ogale, Yiannis Aloimonos. Shape and the stereo correspondence
    problem // International Journal of Computer Vision, 2005. – 65(1).
    (http://www.cs.umd.edu/~ogale/papers/ogaleIJCV05shape.pdf).
12) Zhengyou Zhang. Determining the Epipolar Geometry and its Uncertainty:
    A Review, 1998.
    (http://citeseer.ist.psu.edu/article/zhang96determining.html).
13) Robyn Owens. Epipolar geometry, 1997. (http://homepages.inf.ed.ac.uk/
    rbf/CVonline/LOCAL_COPIES/OWENS/LECT10/node3.html).
14) Quang-Tuan Luong. Learning Epipolar Geometry.
    (http://www.ai.sri.com/~luong/research/Meta3DViewer/EpipolarGeo.html).
15) Richard Hartley, Andrew Zisserman. Multiple View Geometry in computer
    vision, 2003. – Cambridge University Press. 
    (http://books.google.com/books?id=si3R3Pfa98QC&pg=PA153&dq=pinhole+
    intitle:%22Multiple+View+Geometry+in+computer+vision%22&lr=&as_brr=0&
    ei=nUSqR4WwHqP2iwGn-MiwCg&sig=0_W7ppQQx1zDNlCGYXLySmr4OOU).
16) Ingrid Carlbom, Joseph Paciorek. Planar Geometric Projections and Viewing
    Transformations. – ACM Computing Surveys 10 (4), 1978. – P.465–502.
    (http://www.cs.uns.edu.ar/cg/clasespdf/p465carlbom.pdf).
17) B. Triggs, P. McLauchlan, R. Hartley, A. Fitzgibbon. Bundle Adjustment –
    A Modern Synthesis, Vision Algorithms: Theory and Practice, 1999.
    (http://lear.inrialpes.fr/pubs/2000/TMHF00/Triggs-va99.pdf).
18) Subhashis Banerjee. How to compute a homography, 2008.
    (http://www.cse.iitd.ac.in/~suban/vision/geometry/node24.html).
19) 3D projection. (http://en.wikipedia.org/wiki/3D_projection).
20) 3x4 Projection Matrix. (http://homepages.inf.ed.ac.uk/rbf/CVonline/
    LOCAL_COPIES/EPSRC_SSAZ/node3.html).


*   Open Computer Vision Library.
    (http://sourceforge.net/projects/opencvlibrary).
*   Intel® IPP – Intel® Software Network.
    (http://software.intel.com/en-us/intel-ipp).
*   Qt – A cross-platform application and UI framework.
    (http://qt.nokia.com/products).

-------------------------------------------------------------------------------
6. Changelog

*** 21.06.2010 - v0.25 ***
- Fixed rare bug with defects removal occured when the same
  defect was selected in both 2nd and 3rd tabs
- Fixed issue with JPEG files not saving on WinXP platform
- Plenty of GUI fixes
- Accelerators redesigned, added Smart refresh tool
- Ruler tool updated

*** 20.06.2010 - v0.24 ***
- Rectified projection of surface is now calculated
- Fixed bug with ruler tool when it was not visible
- Rescaling measures from mm to cm

*** 20.06.2010 - v0.23 ***
- Fixed issue when not asking for unsaved changes before exit
- Defects selections
- Shortcuts, menu commands for defect commands
- Ruler tool implemented
- Fixed GUI issues

*** 20.06.2010 - v0.22 ***
- Fixed issues when starting application from 'Release'
  or 'Debug' folders
- Fixed projects directory parameter changes issue when it
  worked not properly after change
- Defects data is cleared right after project is closed
- Fixed issue with double check of unsaved changes when
  closing the application window
- Now scale factor is saved within project, so when loaded
  rectified projection + scale factor give full information
  about projection

*** 19.06.2010 - v0.21 ***
- Fixed file saving issue with line feeds
- Added Shape restoration functionality (interface and
  placeholder methods for plugin)
- Rectified projection images are now saved
- Defect lists
- Defect parameters measuring
- Displaying full information about defects
- Generation of reports

*** 18.06.2010 - v0.20 ***
- Added preprocessing parameter for sending images to
  configuration widget which greately improved speed
  of switching between modifiers
- Fixed bug with updating modifiers information after
  switching stereo images
- Updated histogram modifier (single overlapped histogram,
  controls, auto values calculated using quantiles)
- Controls state is updated properly, new controls

*** 18.06.2010 - v0.19 ***
- Added main configuration plugins support
- Added preprocessing plugins support
- Added basic filters - median, images swapping, histogram
- Added utility to convert images from QPixmap to IplImage
- Implemented modifiers controls

*** 17.06.2010 - v0.18 ***
- Fixed importing normals
- Improved import of 3D models
- Implemented export of 3D models
- Changed 3D preview light position

*** 15.06.2010 - v0.17 ***
- Fixed bug with zoom icon displayed on graphics scenes
  scroll bars
- Imported 3D models are now sored within single mesh
  (and also will be exported as single object)
- New comparison methods for SDAPoint3D
- GUI minor changes

*** 14.06.2010 - v0.16 ***
- 3D viewer shading and zoom speed improved
- New features - opening files to import, clearing scene
- Ruler tool added (not yet implemented)

*** 10.06.2010 - v0.15 ***
- 3D viewer implemented
- OBJ importer implemented
- Zoom rectangle replaced by rubber band
- Stereo images views are fully sinchronized now

*** 07.06.2010 - v0.14 ***
- Bugfixes
- Zoom Tool implemented
- Hand Tool is deleted - hand is used by default

*** 05.06.2010 - v0.13 ***
- OpenCV updated to 2.1.0
- User controls for surface analyzing and
  defect shape analyzing added
- OpenGL widget and rendering functionality
- Information about Qt, OpenCV, IPP

*** 04.06.2010 - v0.12 ***
- BUGFIX: memory leak issue solved which occured while
  setting images to graphics scene and image viewer
- GUI preparation for future features
- Language and JPEG quality options
- Options window (not jet implemented)

*** 03.06.2010 - v0.11 ***
- Working image viewer
- Graphics scenes for processed images display,
  additional information is displayed
- Zooming abilities
- Image saving

*** 02.06.2010 - v0.10 ***
- Bug fixes in stereo images handling
- GUI design changes
- SDAGraphicsScene class created
- Log window state tracking

*** 01.06.2010 - v0.09 ***
- Operations with image sets are fully implemented
- Saving and opening of project format v0.3,
  all data about image sets is saved
- Image viewer
- Reorganized plugins projects

*** 30.05.2010 - v0.08 ***
- Fixed bugs in plugins unloading procedure
- Implemented project tree, adding and removing of stereo
  image sets

*** 29.05.2010 - v0.07 ***
- Added profile selection procedure
- Unnecessary plugins are unloaded after profile selection
- Changes in plugin data structures

*** 28.05.2010 - v0.06 ***
- Added stereo base configuration feature
- Solution structure reorganization
- Added dedicated configuration structures for project and
  image sets
- User interface changes
- WIP: project tree implementation
- WIP: plugins support

*** 26.05.2010 - v0.05 ***
- Project name changed to Surface Defects Analyzer in order
  to make a step forward to universality
- cvGetImageSize() function added to OpenCV's highgui.dll
  in order to provide functionality to get image size
  without opening (allocating memory)
- NewImageSetDialog implemented

*** 23.05.2010 - v0.04 ***
- Improved window position saving
- Implemented project file opening
- Added multilanguage support, russian language translation

*** 14.05.2010 - v0.03 ***
- Added window position saving
- Implemented project file saving
  including all warnings, creation of subfolders, etc
Source: readme_en.txt, updated 2010-07-10