Attention: The documentation and code and executables of this project has been moved to [here](https://github.com/JzHuai0108/ImageSegmentor).
Brief Introduction
This software has realized the followingmethods for segmentation:
Graph based segmentation [2](GS);
Quad tree segmentation [1] (QT)(similar to that implemented in eCognition [6] and that as a step in HSMR [7],but in a bottom-up fashion);
Hierarchical Clusteringsegmentation (HC) (i.e., Multiresolution segmentation [3], but with multiplehomogeneity criterion, basic data structures detailed in [5]);
The two-stage methods, GS-HC,QT-HC (described in [1] in detail)
Pyramid mean shift segmentationimplemented in OpenCV 1.0
Mean shift segmentation [8] ofDorin Comaniciu (resembles EDISON [9])
Watershed segmentation [10] ofVincent and Soille
And for edge detection, SUSAN [11], Sobel,Canny edge detector are incorporated.
For classification,
MRF classification initializedby K-means by ICM, Gibbs sampler, Metropolis etc.
K-means clustering
For building hypotheses generation onpanchromatic images,
Hierarchical region growing andthen apply threshold to region properties (i.e., decision tree),
K-means clustering, connectedregion labeling and then decision tree,
For change detection,
Rosin’s automatic thresholding[12],
Gradient image correlationthresholding [13],
window intensity correlationthresholding [14],
Window histogram matching usingOpenCV.
Multilevel parcel based change detectionusing K-means (resembles [15] but using k-means to decide threshold)
How to install?
Requirement: OpenCV 1.0 has been installedon your computer and the system variable path has been set. The GDAL library isused in this software to support for multiple image formats and various vectorformats, such as shp. And the needed source code for GDAL is already includedin the source code zip file.
(1) Download the source code. zip file fromthe 优快云 (Search keywords image segmentor source code)
(2) Unzip and Open the .dsw file in VisualC++6.0.
(3) Compile and Debug.
If there is linking problems, you may haveto reset the project setting to link libraries for GDAL and OpenCV.
How to use?
The menu contains 4 items forpreprocessing, segmentation, classification and change detection, namely,preprocess, seg, classify and texture CD, respectively.
Normally, Open an image, click one commandin the menu, follow the popup dialogs (if available), the outcome will replace theoriginal image and display in the child window. And if want to make anotheroperation on the original image, use View>Origin to get back to the initialimage.
The following is a table of menu itemscorresponding to image processing functions.
commands | function description or requirement | |
preprocess |
|
|
histogram equalize | take 256 gray scale image as input | |
edge detection | sobel | use the first channel of the image to detect edges |
susan | as above | |
canny | as above | |
smooth by Gauss | use the first channel of the image | |
Gabor transform | ||
Entropy | ||
Opening Morph | open operation of morphology | |
seg | ||
set parameters | set parameters for segmentation methods, if skipped, parameters take values by default | |
Quad Tree | Quad Tree segmentation | |
HierClust | multiresolution segmentation | |
GraphSeg | graph based segmentation | |
GraphSeg-HC | first Graph based segmentation, followed by hierarchical clustering, i.e.,region merging | |
QuadTree-HC | Quad Tree segmentation followed by hierarchical clustering | |
Preview | after any of the preceding 5 segmentation command, use this command to view region properties and histograms | |
Mean shift(bg-dzj) | mean shift proposed by Comaniciu | |
Watershed(Vincent) | Vincent-Soille's segmentation approach | |
Pyr Mean Shift(OpenCV) | pyramid mean shift implemented in OpenCV | |
classify | ||
MRF classifier | apply to the first band of the input image | |
Color MRF | use the intensity of the image in the active window as input | |
Kmeans | Kmeans classifier to classify pixels in an image | |
Building Kmeans | Kmeans classification, connected region labeling and decision tree to get building hypotheses | |
Building | region growing (Hierarchical clustering) and decision tree to get building prototypes | |
Texture CD | change detection based on texture | |
Rosin CD | Rosin's automatic thresholding for change detection | |
Correlation CD | intensity correlation between windows centered on one pixel at two-time images and thresholding by 0.5 to detect changes | |
Grad Corr CD | gradient correlation between windows centered on one pixel at two-time images and thresholding for change detection | |
Histrogram Stat CD | match histograms of the window centered on one pixel of two times and threshold to detect changes | |
Multilevel Diff CD | multilevel parcel based feature extraction and k-means clustering to decide threshold for change detection, a little slower and the change detection result is saved in the same directory as the opened image |
Note that there are additional commands nottabulated in the above table which are not complete or waiting for update.
Reliability Concerns
These functions have been tested for a fewtimes. But obviously they are premature and need to be rigorously tested, sosafety using this code is not guaranteed. From my empirical observations, thesegmentation methods, GS-HC, QT-HC and HC are most reliable among other commands.If there is any bug concerning the 3 functions, I would like to exchange views.
Reference
1. YuminTan, Jianzhu Huai, Zhongshi Tang. AnObject-Oriented Remote Sensing Image Segmentation Approach Based on EdgeDetection. Spectroscopy and Spectral Analysis, vol. 30, no. 6, pp.1624-1627,June 2010.
4. KostasHaris, Serafim N. Efstratiadis,Nicos Maglaveras, and Aggelos K. Katsaggelos. HybridImage Segmentation Using Watersheds and Fast Region Merging. IEEE Transactions on Image Processing, Vol.7, No. 12, Dec 1998.
5. DavidJ. Robinson, Nicholas J. Redding, David J. Crisp. Implementation of a FastAlgorithm for Segmentating SAR Imagery. Jan 2002.
6. eCognitionuser guide 4.0. http://www.gis.unbc.ca/help/software/ecognition4/ELuserguide.pdf
7. BenWuest, Yun Zhang. Region based segmentation of QuickBird multispectral imagerythrough band ratios and fuzzy comparison. ISPRS Journal of Photogrammetry andRemote Sensing 64 (2009) 55-64.
8. DorinComaniciu and Peter Meer. Mean Shift: A Robust Approach Toward Feature SpaceAnalysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.24, no. 5, May 2002.
9. EDISON user guide. http://coewww.rutgers.edu/riul/research/code/EDISON/doc/segm.html
10. Lee Vincent and PierreSoille. Watersheds in digitalspaces: An efficient algorithm based on immersion simulations. IEEE PAMI, vol.13, no. 6, pp. 583--598, 1991.
11. Stephen M. Smith and J. Michael Brady. SUSAN—ANew Approach to Low Level Image Processing. International Journal of ComputerVision 23(1), 45–78 (1997)
12. Paul L Rosin. Thesholding for ChangeDetection. Proceedings of International Conference on Computer Vision, 1998.
13. Liyuan Li,Maylor K. H.Leung. Integrating Intensity andTexture Differences for Robust Change Detection. IEEE Transactions on ImageProcessing, vol. 11, no. 2, Feb. 2002.
14. Csaba Benedek, Xavier Descombes and Josiane Zerubia.Building Extraction and Change Detection in Multitemporal Aerial and SatelliteImages in a Joint Stochastic Approach. INRIA. 2009.
15. F. Bovolo and L. Bruzzone, A multilevel parcel-basedapproach to change detection in very high resolution multitemporal images,Proc. IGARSS, vol. 3, pp. 2145–2148, 2005.