The operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllShapeHistoAllshape_histo_all carries out 255 threshold
operations within RegionRegionRegionRegionregionregion with the gray values of
ImageImageImageImageimageimage. The entry i in the histogram corresponds to the
number of connected components/holes of this image segmented with
the threshold i (FeatureFeatureFeatureFeaturefeaturefeature =
'connected_components'"connected_components""connected_components""connected_components""connected_components""connected_components", 'holes'"holes""holes""holes""holes""holes") or the mean
value of the feature values of the regions segmented in this way
(FeatureFeatureFeatureFeaturefeaturefeature = 'convexity'"convexity""convexity""convexity""convexity""convexity", 'compactness'"compactness""compactness""compactness""compactness""compactness",
'ansisometry'"ansisometry""ansisometry""ansisometry""ansisometry""ansisometry"), respectively.
Attention
The operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllShapeHistoAllshape_histo_all expects a region and exactly
one gray value image as input. Because of the power of this
operator the runtime of shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllShapeHistoAllshape_histo_all is relatively large!
List of values:
'anisometry'"anisometry""anisometry""anisometry""anisometry""anisometry", 'compactness'"compactness""compactness""compactness""compactness""compactness", 'connected_components'"connected_components""connected_components""connected_components""connected_components""connected_components", 'convexity'"convexity""convexity""convexity""convexity""convexity", 'holes'"holes""holes""holes""holes""holes"
* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
threshold(RegionGray,Seg,i,255)
connect_and_holes (Seg, NumConnected, _)
AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
RelHisto[i] := AbsHisto[i]/Sum
endfor
Example (C)
/* Simulation of shape_histo_all with feature 'connected_components': */
my_shape_histo_all(Hobject Region,Hobject Image,
Hlong AbsHisto[], double RelHisto[])
{
Hlong i,sum;
Hobject RegionGray,Seg;
reduce_domain(Region,Image,&RegionGray);
for (i=0; i<256; i++) {
threshold(RegionGray,&Seg,(double)i,255.0);
connect_and_holes(Seg,&AbsHisto[i],NULL);
}
for (i=0; i<256; i++)
sum += AbsHisto[i];
for (i=0; i<256; i++)
RelHist[i] = (double)AbsHisto[i]/Sum;
}
Example (HDevelop)
* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
threshold(RegionGray,Seg,i,255)
connect_and_holes (Seg, NumConnected, _)
AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
RelHisto[i] := AbsHisto[i]/Sum
endfor
Example (HDevelop)
* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
threshold(RegionGray,Seg,i,255)
connect_and_holes (Seg, NumConnected, _)
AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
RelHisto[i] := AbsHisto[i]/Sum
endfor
Example (HDevelop)
* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
threshold(RegionGray,Seg,i,255)
connect_and_holes (Seg, NumConnected, _)
AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
RelHisto[i] := AbsHisto[i]/Sum
endfor
Complexity
If F is the area of the input region and N the mean number of
connected components the runtime complexity is
.