segmentation_tree

所属分类:图形图像处理
开发工具:matlab
文件大小:177KB
下载次数:28
上传日期:2012-04-19 09:41:55
上 传 者dfd fd
说明:   这个软件包包含MATLAB实现了低层次多尺度 分层分割算法
(Segmentation Tree Implementation (version 1.4) ============================================== This package contains a MATLAB implementation of the low-level multiscale hierarchical segmentation algorithm)

文件列表:
segmentation_tree (0, 2011-12-09)
segmentation_tree\mex_eliminate_weak_boundaries.mexw32 (8192, 2011-04-24)
segmentation_tree\mex_draw_boundaries_helper.mexw32 (7680, 2011-04-24)
segmentation_tree\mex_label_edge_pixels.mexw32 (13312, 2011-04-24)
segmentation_tree\boundaries4.mexw64 (10752, 2011-05-17)
segmentation_tree\mex_produce_photometric_segmentations.mexa64 (37233, 2011-04-24)
segmentation_tree\mex_eliminate_weak_boundaries.mexmaci64 (9320, 2011-04-24)
segmentation_tree\mex_draw_boundaries_helper.mexmaci64 (8768, 2011-04-24)
segmentation_tree\mex_label_edge_pixels.mexmaci64 (14424, 2011-04-24)
segmentation_tree\mex_produce_photometric_segmentations.mexw64 (35328, 2011-05-17)
segmentation_tree\mex_produce_photometric_segmentations.mexw32 (49152, 2011-04-24)
segmentation_tree\mex_label_edge_pixels.mexa64 (13696, 2011-04-24)
segmentation_tree\CHANGELOG (228, 2011-12-09)
segmentation_tree\grow_cores.p (615, 2011-04-24)
segmentation_tree\mex_compute_areas.mexa64 (8268, 2011-04-24)
segmentation_tree\boundaries4.mexmaci64 (13304, 2011-04-24)
segmentation_tree\mex_grow_cores_helper.mexa64 (13009, 2011-04-24)
segmentation_tree\imsegment.p (1131, 2011-04-24)
segmentation_tree\mex_eliminate_weak_boundaries.mexw64 (8704, 2011-05-17)
segmentation_tree\mex_grow_cores_helper.mexw64 (9216, 2011-05-17)
segmentation_tree\prettify_output.p (669, 2011-04-24)
segmentation_tree\mex_compute_areas.mexw32 (20480, 2011-04-24)
segmentation_tree\mex_compute_areas.mexw64 (7680, 2011-05-17)
segmentation_tree\mex_compute_areas.mexmaci64 (8784, 2011-04-24)
segmentation_tree\compile_mex_files.p (238, 2011-04-24)
segmentation_tree\mex_remove_invalid_edge_pixels.mexw64 (8192, 2011-05-17)
segmentation_tree\version (5, 2011-12-09)
segmentation_tree\mex_label_edge_pixels.mexw64 (15872, 2011-05-17)
segmentation_tree\mex_remove_invalid_edge_pixels.mexa64 (8783, 2011-04-24)
segmentation_tree\mex_remove_invalid_edge_pixels.mexw32 (7680, 2011-04-24)
segmentation_tree\get_region_list.m (23, 2011-04-24)
segmentation_tree\mex_remove_invalid_edge_pixels.mexmaci64 (9320, 2011-04-24)
segmentation_tree\mex_draw_boundaries_helper.mexw64 (9728, 2011-05-17)
segmentation_tree\boundaries4.mexa64 (12711, 2011-04-24)
segmentation_tree\mex_grow_cores_helper.mexmaci64 (13584, 2011-04-24)
segmentation_tree\boundaries4.mexw32 (9728, 2011-04-24)
segmentation_tree\mex_grow_cores_helper.mexw32 (8192, 2011-04-24)
segmentation_tree\mex_eliminate_weak_boundaries.mexa64 (12877, 2011-04-24)
... ...

Segmentation Tree Implementation (version 1.4) ============================================== This package contains a MATLAB implementation of the low-level multiscale hierarchical segmentation algorithm described in [1]. Introduction ------------ The goal of low-level image segmentation is to detect all image regions regardless of their shapes, sizes, and levels of interior homogeneity. Here, a region is modeled as a connected set of pixels that is surrounded by ramp edge discontinuities where the magnitude of these discontinuities is large compared to the variation inside the region. Each region is associated with a scale depending on the magnitude of discontinuities at the weakest part of its boundary. Traversing through the range of all possible scales, we obtain all regions present in the image. Regions strictly merge as the scale increases; hence a tree is formed where the root node corresponds to the whole image, and nodes close to the root along a path are large, while their children nodes are smaller and capture embedded details. Refer to [1] for further details. Given an input image, the algorithm outputs a tree, called the _segmentation tree_, which contains all regions present in the input image. The user does not need to set any input parameters. Usage ----- To segment an image, first load it by reading it with +imread+: ---- >> img = imread('myimage.jpg'); ---- Then, segment the image with the following command: ---- >> imsegment(img, 'resultsdir'); ---- This will produce the photometric segmentations of the input image, and will save them under the +resultsdir+ directory, which will be created if it doesn't exist. Next, to obtain the tree, type: ---- regions = get_region_list('resultdir'); ---- which will produce a cell array of regions. Each element in this array has the necessary fields to access the segmentation tree. For example, let us look at the 50th region, which is +regions\{50\}+: ---- >> regions{50} ans = pixels: [909x1 single] area: 909 boundary: [112x2 single] contrast: 55 filled_pixels: [976x1 double] filled_area: 976 children: [105 106 146 144 51 189] parent: 3 adjacent_regions: [52 65 86] ---- The id of the parent of this region is 3; that is, +regions\{3\}+ is the parent region of +regions\{50\}+. It has 6 children regions whose ids are 105, 106, 146, 144, 51, and 189. +adjacent_regions+ field gives the list of spatially neighboring regions which share a boundary fragment with +regions\{50\}+. There are other fields which give useful information about each region. +boundary+ field is a matrix containing the x-y coordinates of the boundary pixels. For example, if you want to visualize the boundary of +regions\{50\}+, you can simply do: ---- imshow(img); hold on; plot(regions{50}.boundary(:,2), regions{50}.boundary(:,1), 'r.'); ---- which will mark the boundary of the region with red dots. +contrast+ field gives the photometric scale of the region, i.e. the contrast level at which the region is detected. +pixels+ field stores the indices of all pixels of the region. One can convert these indices to x-y coordinates by using +ind2sub+: ---- [rows, cols] = ind2sub(size(img), regions{50}.pixels); ---- Now, one can plot the whole region itself (not just the boundary) by: ---- imshow(img); hold on; plot(cols, rows, 'r.'); ---- +area+ is the number of pixels in the region. If the region has any hole(s), +filled_pixels+ stores the indices of all pixels that are enclosed within the region boundary, and +filled_area+ gives the number of such pixels. These two fields are empty if the region does not have any hole(s). One can use these fields to test whether a region contains another. And finally, the regions that are direct children of the root have -1 as their parent id. References ---------- If you use this segmentation code in your research, please cite the following papers: *[1]* Emre Akbas and Narendra Ahuja, "From Ramp Discontinuities to Segmentation Tree", Asian Conference on Computer Vision (ACCV), 2009. http://vision.ai.uiuc.edu/publications/accv2009_akbas_ahuja.pdf[fulltext] http://dblp.uni-trier.de/rec/bibtex/conf/accv/AkbasA09[bibtex] *[2]* Narendra Ahuja, "A Transform for Multiscale Image Segmentation by Integrated Edge and Region Detection," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 18, No. 12, December 1996, 1211-1235. http://vision.ai.uiuc.edu/publications/pami1996_ahuja_segmentation.pdf[fulltext] http://dblp.uni-trier.de/rec/bibtex/journals/pami/Ahuja96[bibtex] Contact ------- For any correspondence about this package, contact Emre Akbas (eakbas2 at illinois.edu).

近期下载者

相关文件


收藏者