⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 specification.html

📁 关于均值漂移的程序
💻 HTML
📖 第 1 页 / 共 3 页
字号:
speedup to result in an even faster execution of the mean shift algorithm.

<p><i>Possible Values</i>
<ul>
<li>NONE</li>
<li>MEDIUM</li>
<li>HIGH</li>
</ul>

<p><b><a name="curvetype">Curve Type</a></b>

<p>The curve type enumeration is used to specify the shape of the curves
used during the non-maximum and hysterisis thresholding steps of the
confidence based edge detection algorithm. The possible curve types are
listed below. 

<p><u>NOTE</u>:The non-maxima suppression curve may not be of type CUSTOM.

<p><i>Possible Values</i>
<ul>
<li>ARC</li>
<li>HORIZONTAL_LINE</li>
<li>VERTICAL_LINE</li>
<li>LINE</li>
<li>BOX</li>
<li>CUSTOM</li>
</ul>

<p><b><a name="vertexlist">Vertex List</a></b>

<p>The vertex list is a list of 2-dimensional vertices that are placed in
the row-eta diagram to form a custom curve. The custom curve has the syntax
outlined below.

<p><i>Syntax:</i>

<p>Parameter = {(<i>x1</i>, <i>y1</i>), (<i>x2</i>, <i>y2</i>), ..., 
(<i>xn</i>, <i>yn</i>)};
<p>where <i>xi</i> and <i>yi</i> are real valued numbers. 

<p><u>NOTE</u>: Empty vertex lists (i.e. using '{};') are not permitted.

<br><br>

<hr>

<!---Input Types--->

<h3><a name="input">Input Types</a></h3>

There are two types of input used by the EDISON system.

<ol>
<li><b>Image Input</b></i>
<p>The images analyzed using the EDISON system are specified as input by
passing IMAGE as an argument to the <a href="#load"> Load </a> command. A
list of <a href="#images">supported</a> and <a href="#formats">extendible</a>
file formats are provided below.<br><br>
<li><b>Map Input</b></i>
<p>A custom weight map may be specified as input to the synergistic image
segmentation algorithm by passing MAP as an argument to the 
<a href="#load"> Load </a> command. Currently custom weight maps may only
be specified using MATLAB ASCII data files.
</ol>

<hr>

<!---Output Types--->

<h3><a name="output">Output Types</a></h3>

<p> The nine different output types are grouped below according to
operation. All output types may be output using any <a href="#images">
supported</a> or <a href="#formats">extendible</a> file formats.

<p><b>Edge Detection</b>

<p><table width="80%" border=0>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">EDGES</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the edge map.</td>
</tr>
</table>

<p><b>Image Segmentation</b>

<p><table width="80%" border=0>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">SEGM_BOUNDARIES</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the region boundaries of a segmented or
	filtered image.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">SEGM_IMAGE</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the segmented image.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">SEGM_IMAGE_BOUNDARIES</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the segmented image with the region
	boundary points overlaid onto the image.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">FILT_IMAGE</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the filtered image.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">FILT_IMAGE_BOUNDARIES</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the filtered image with region boundary
	points overlayed onto the image.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">WEIGHT_MAP</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the weight map</td>
</tr>
</table>

<p><b>Edge Detection and Image Segmentation</b>

<p><table width="80%" border=0>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">GRADIENT_MAP</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the gradient map.</td>
</tr>
<tr height=20></tr>
<tr>
	<td width="5%"></td>
	<td width="15%"><u>Output Type</u>:</td>
	<td width="80%">CONFIDENCE_MAP</td>
</tr>
<tr>
	<td width="5%"></td>
	<td width="15%" valign="top"><u>Description</u>:</td>
	<td width="80%">Output the confidence map.</td>
</tr>
</table>

<br><br>

<hr>

<!---Supported Image/File Formats--->

<h3><a name="images">Supported Image/File Formats</a></h3>

<p> The supported file formats include: (1) Images: Portable Pixel-map
(Grey-scale [pgm] and Color [ppm]) and Portable Any-map (pnm), (2) Data:
MATLAB ASCII data files. These file formats are specified via the file
format enumeration whose possible values are listed below.

<p><u>File Type Enumeration</u>

<p><ul>
<li> PPM - Portable Pixel-map Color Images
<li> PGM - Portable Pixel-map Grey-scale Images
<li> PNM - Portable Any-map Images
<li> MAT-LAB_ASCII - MATLAB ASCII data files
</ol>

<p>One may <a href="#formats">extend</a> the EDISON system to support
additional image/file formats as needed.

<br><br>

<hr>

<!---Other Image Formats--->

<h3><a name="formats">Other Image Formats</a></h3>

<p>One may extend the EDISON system to support additional image/file
formats by altering the code in the following files, and then alter
the makefile and recompile the system with the additional source files
containing the function definitions necessary for reading/writing.

<font face="courier" size=2>
<ul>
<li>defs.h
<li>globalFnc.h
</ul>
</font>

<p>In 'defs.h' the constant FILETYPE_NUM must be changed to indicate the
number of available file formats. An enumeration must then be added to
the file type enumeration list, and a corresponding entry must be
placed in the FILETYPE_LIST to indicate how this file format will be
represented in the EDISON script. Finally, a corresponding entry must
also be entered into the FILETYPE_HEADER_LIST specifying the file
header that identifies the file format. Completing the above will define the
new file type(s) in the EDISON system.

<p>Next, in 'globalFnc.cpp' an entry must be entered for each new file 
type in the case statements located in the functions CmCReadImage() and
CmCWriteImage(), that will read/write a file using the specified file
format. Once complete, the enumeration of the new file type(s) must be
entered into the SUPPORTED_FILETYPE_LIST, which indicates to the system
that the file types are supported.

<p>As seen from the code in 'defs.h' the file types for jpeg, pcx, and
png are already defined in the EDISON system. These image formats are
not currently supported by the system, however. Using them in an EDISON
script without adding the appropriate functionality and recompiling
the code will result in a version incompatibility error, which is
flagged prior to running the script.

<br><br>

<hr>

<!---Example: Confidence Based Edge Detection--->

<h3><u>Example</u>: <a name="example_edge">Confidence Based Edge Detection</a></h3>

<font face="courier" size=2>

<p>/*
<br>Performs confidence based edge detection.
<br>*/
<p>//Specify the edge detection parameters
<br>GradientWindowRadius = 2;
<br>MinimumLength = 5;
<br>NmxRank = 0.5;
<br>NmxConf = 0.5;
<br>NmxType = ARC;
<br>HysterisisHighRank = 0.9;
<br>HysterisisHighConf = 0.9;
<br>HysterisisHighType = BOX;
<br>HysterisisLowRank = 0.8;
<br>HysterisisLowConf = 0.8;
<br>HysyerisisLowType = CUSTOM;
<br>CustomCurveHystLow = {(0.4,0.7), (0.6,0.3)};
<p>//Display progress
<br>DisplayProgress ON;
<p>//Load an image to perform edge detection
<br>Load('image.ppm', IMAGE);
<p>//Perform edge detection
<br>EdgeDetect;
<p>//Save the resulting edge map
<br>Save('edgemap.pgm', PGM, EDGES);
<p>//done.

</font>

<br><br>

<hr>

<!---Example: Mean Shift Based Segmentation--->

<h3><u>Example</u>: <a name="example_ms">Mean Shift Based Segmentation</a></h3>

<font face="courier" size=2>

<p>/*
<br>Performs mean shift based segmentation.
<br>*/
<p>//Specify mean shift parameters
<br>SpatialBandwidth = 7;
<br>RangeBandwidth = 6.5;
<br>MinimumRegionArea = 20;
<br>Speedup = MEDIUM;
<p>//Display progress
<br>DisplayProgress ON;
<p>//Load an image to be segmented
<br>Load('image.pnm', IMAGE);
<p>//Segment the image
<br>Segment;
<p>//Save the result:
<p>//The segmented image...
<br>Save('segmimage.pnm', PNM, SEGM_IMAGE);
<p>//The filtered image...
<br>Save('filtimage.ppm', PPM, FILT_IMAGE);
<p>//The boundary image...
<br>Save('bndyimage.pgm', PGM, SEGM_BOUNDARIES);
<p>//done.

</font>

<br><br>

<hr>

<!---Example: Synergistic Segmentation--->

<h3><u>Example</u>: <a name="example_syn">Synergistic Segmentation</a></h3>

<font face="courier" size=2>

<p>/*
<br>Performs synergistic image segmentation.
<br>*/
<p>//Specify the necessary parameters...
<br>SpatialBandwidth = 7;
<br>RangeBandwidth = 6.5;
<br>MinimumRegionArea = 20;
<br>Speedup = MEDIUM;
<br>GradientWindowRadius = 2;
<br>MixtureParameter = 0.3;
<br>EdgeStrengthThreshold = 0.55;
<p>//Load an image
<br>Load('image.pnm', IMAGE);
<p>//Load a custom weight map
<br>Load('map.dat', MAP);
<p>//Use synergistic segmentation
<br>Synergistic ON;
<p>//Use a custom weight map
<br>UseCustomWeightMap ON;
<p>//Do not display progress
<br>DisplayProgress OFF;
<p>//Segment the image
<br>Segment;
<p>//Save the resulting segmented image with the region boundaries
<br>//overlayed.
<br>Save('syngimage.pnm', PNM, SEGM_IMAGE_BOUNDARIES);
<p>//done.

</font>

<br><br>

<hr>

<!---Example: Mean Shift Based Image Filtering and Region Fusion--->

<h3><u>Example</u>: <a name="example_filt">Mean Shift Based Image Filtering and Region Fusion</a></h3>

<font face="courier" size=2>

<p>/*
<br>Performs mean shift based filtering and region fusion.
<br>*/
<p>//Specify the mean shift parameters for (fine) filtering...
<br>SpatialBandwidth = 4;
<br>RangeBandwidth = 4;
<br>Speedup = MEDIUM;
<p>//Load an image
<br>Load('image.pnm', IMAGE);
<p>//Display progress
<br>DisplayProgress ON;
<p>//Filter the image
<br>Filter;
<p>//Save the filtered image
<br>Save('filtimage.pnm', PNM, FILT_IMAGE);
<p>//Segment the image using a large resolution in both subspaces...
<br>SpatialBandwidth = 7;
<br>RangeBandwidth = 6.5;
<br>MinimumRegionArea = 20;
<p>//Fuse the filtered image regions
<br>Fuse;
<p>//Save the result
<br>Save('fuseimage.pnm', PNM, SEGM_IMAGE);
<p>//Further fuse the regions using a larger minimum area
<br>MinimumRegionArea = 50;
<br>UseResult(SEGM_IMAGE);
<br>Fuse;
<p>//Save the result
<br>Save('newimage.ppm', PPM, SEGM_IMAGE);
<p>//done.

</font>

<br><br>

<hr>

<!---Copyright--->

<font color=#555555> Robust Image Understanding Laboratory, (freeware) 2002. </font>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -