[Insight-users] Granulometry filter in ITK?
lynx.abraxas at freenet.de
lynx.abraxas at freenet.de
Tue Nov 17 02:23:00 EST 2009
On 16/11/09 15:58:31, Gaëtan Lehmann wrote:
>
> Le 16 nov. 09 ? 15:46, Gaëtan Lehmann a écrit :
>
>>
>> Hi,
>>
>> There is no filter ready to use for this task in ITK at this time.
>> However, I believe that most of the tools needed are there.
>>
>> If I get it right, you want to do the local texture analysis used page
>> 322 of Soille's book to segment the two kind of forest. As I
>> understand it, with a statistics which is the size of the kernel for
>> the maximum value of the derivative, it can be computed that way:
>>
Dear Gaëtan,
Sadly I had to hand in the book, so I'm not sure on what page it was. But it
was a filter that created two segments where each segment sourrounded the
areas with similar granulometry. I would like to know in 3D where areas of
higher and lower granulomtetry are. So bascily specifing a neighbourhood and a
threshold kernel-size to a granulometry-filter that then gives me a binary
image.
Or if even better a granulometry-filter that yields a greyleve image where
each greyleve corresponds to the lokal granulometry in the input image. As
input it would need a (binary?) input image and a neighbourhood. By
thresholding that output I think I would get the filter result describe above.
> Sorry, obviously, this is not the right check. The difference between
> M2[i] and M[I] must be compared to the highest derivative seen before - I
> should re-read my mails before sending them.
>
> Input: I (the input image), KL (the kernel list), N (the neighbourhood
> where the statistics is computed)
> D = domain(I)
> M = localMean(I)
> O = newImage(D, 0)
> H = newImage(D, 0)
> for k in KL
> I = opening(I, k)
> M2 = localMean(I, N)
> for i in D
> d = M[i] - M2[i]
> if d > H[i]:
> O[i] = size(k)
> H[i] = d
> M = M2
> return O
Thanks a lot for the idea how to realize this as a filter.
I've to think about this a bit more before I understand it.
D = domain(I) <=> image size in x, y, z or total # of voxel for an
iterator???
M = localMean(I) <=> globalMean(I) ?
Is there filter in ITK for localMean of an image within a specified
neighbourhood?
It is said granulometry is fullfilling the sieving axioms. But if I get it
reight the result of granulometry does not correspond to real live sieving,
does it? I would think real live sieving of eg. sand would be the granulometry
of the convex-hull of each particle. Am I seeing that right?
eg. a particle like this:
X
X
XXXXXXXXXX
Would vanish with an opening of kernel size X but it would need a real live
mesh size of:
X
X
X
To fall through a sieve.
Thanks for all Your help.
Lynx
More information about the Insight-users
mailing list