One dimensional sieve applied to images: Difference between revisions
Line 35: | Line 35: | ||
name: 'PULSES3WIDE' | name: 'PULSES3WIDE' | ||
====<span style="color:navy">Now | ====<span style="color:navy">Now what about '''scale-space'''?. </span>==== | ||
[[Image:Siv4 test 5.png|400px|center|'m' non-linear filter (sieve) compared to Gaussian filter]] | [[Image:Siv4 test 5.png|400px|center|'m' non-linear filter (sieve) compared to Gaussian filter]] | ||
{| border="0" cellpadding="5" cellspacing="5" | {| border="0" cellpadding="5" cellspacing="5" | ||
Line 48: | Line 48: | ||
{| border="0" cellpadding="5" cellspacing="5" | {| border="0" cellpadding="5" cellspacing="5" | ||
|- valign="top" | |- valign="top" | ||
|width="50%"| Another heat-map. The plot is an alternative view of the left Panel above. This time showing the features (at each scale) that are peeled off (removed) by increasing scale sieve filters. The color map is 'jet' to make the features more visible. We call these features granules. It is possible to imagine a 'tree' representation of these granules ([[One_dimensional_sieve_introduction#Tracing_the_granules_through_scale-space_identifies_candidate_MSER.27s | see here for the connection with MSER's.]]) | |width="50%"| Another heat-map. The plot is an alternative view of the left Panel above. This time showing the features (at each scale) that are peeled off (removed) by increasing scale sieve filters. The color map is 'jet' to make the features more visible. We call these features granules. Granules are a mapping of the original signal. Thus, the granularity domain contains all the information in the original signal. It is possible to imagine a 'tree' representation of these granules and then use some mechanism to select 'salient' granules (features). ([[One_dimensional_sieve_introduction#Tracing_the_granules_through_scale-space_identifies_candidate_MSER.27s | see here for the connection with MSER's.]]) The idea is to 'concentrate' the useful information. | ||
|width="50%"| [[Image:Siv4 test granules.png|400px|'o' non-linear filter (sieve)]] | |width="50%"| [[Image:Siv4 test granules.png|400px|'o' non-linear filter (sieve)]] | ||
|} | |} | ||
An alternative is to treat the granularity domain in the manner of wavelets and concentrate the useful information by summing the 'energy' within the granules (fragment) along each scale to produce a histogram the equivalent of a local power spectrum which can be further simplified into, say, six logarithmically spaced scale-bands. Similarly, the phase. To be useful, both probably should be normalised c.f. the cepstrum and ? | |||
Revision as of 21:48, 22 June 2014
'siv4.mex' implemenation applies the m-sieve to a vector or column wise to a matrix
A Matlab function siv4_test.m illustrates how siv4.mex can be used to analyse columns of 1D data.
Consider a signal, <math>X</math>X=getData('PULSES3WIDE') >blue X=0 5 5 0 0 1 1 4 3 3 2 2 1 2 2 2 1 0 0 0 1 1 0 3 2 0 0 0 6 0 0 |
The data has minima and maxima of different scales (lengths). In one dimension we measure pulse length using a ruler, measuring tape or whatever - but not frequency or Gaussian scale. |
Filter
Lowpass siv4.mex
data{1}=siv4_alt('PULSES3WIDE',[2;5;10]); data{1} ans = y: {[34x1 double] [34x1 double] [34x1 double]} % outputs for the 3 specified scales scan: [34 34] % instructing single column processing X: [34x1 double] % input data options: [3x4 double] % options (see elsewhere) outputs: 'lll' % outputs all lowpass type: 'int' % input data may be double but only contains integers name: 'PULSES3WIDE'
Now what about scale-space?.
Left Panel. A low-pass 'm' sieve can remove extrema at multiple scales. Here, siv4.m gradually removes extrema as scale increases from scale 1 to scale 64. The resulting traces are shown as a 'heat map' where the signal goes from left to right, bright colours like red are large amplitude, small scale extrema. At each increasing scale (down the map) extrema have been removed. As result, we can for example see the buried large scale, low amplitude pulse revealed in panel 4 of the previous Figure, as a light green rectangle that starts at n=6 and persists to n=26, i.e. scale=20. The 'm'-sieve preserves scale-space so no new extrema (light regions) are formed as we move to increasing scales. |
Right Panel. A Gaussian filter bank also preserves scale-space as shown by Witkin 1986. (Babaud et. al. 1986 "The uniqueness of the Gaussian kernel ...")<ref>Babaud, Jean; Witkin, Andrew P.; Baudin, Michel; Duda, Richard O., "Uniqueness of the Gaussian Kernel for Scale-Space Filtering," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.PAMI-8, no.1, pp.26,33, Jan. 1986 doi: 10.1109/TPAMI.1986.4767749</ref> |
Using granules to represent the data segment.
Another heat-map. The plot is an alternative view of the left Panel above. This time showing the features (at each scale) that are peeled off (removed) by increasing scale sieve filters. The color map is 'jet' to make the features more visible. We call these features granules. Granules are a mapping of the original signal. Thus, the granularity domain contains all the information in the original signal. It is possible to imagine a 'tree' representation of these granules and then use some mechanism to select 'salient' granules (features). ( see here for the connection with MSER's.) The idea is to 'concentrate' the useful information. |
An alternative is to treat the granularity domain in the manner of wavelets and concentrate the useful information by summing the 'energy' within the granules (fragment) along each scale to produce a histogram the equivalent of a local power spectrum which can be further simplified into, say, six logarithmically spaced scale-bands. Similarly, the phase. To be useful, both probably should be normalised c.f. the cepstrum and ?