Morph-M Python - Neighborhoods » History » Version 1
Serge Koudoro, 10/23/2009 05:03 PM
1 | 1 | Serge Koudoro | h1. Morph-M Python - Neighborhood |
---|---|---|---|
2 | |||
3 | h2{color:#8B0000;background:#ddd}. Neighborhoods |
||
4 | |||
5 | The most useful constructs for complex algorithms are Neighborhoods: |
||
6 | |||
7 | <pre><code class="ruby"> |
||
8 | # this is the almost-complete code for a dilation: |
||
9 | neighb=createNeighborhood(imIn, NeighborList.neighborsHex2D) |
||
10 | it=imIn.imageData() |
||
11 | out=imOut.imageData() |
||
12 | while it.isNotFinished(): |
||
13 | neighb.setCenter(it) |
||
14 | out.setPixel( max(neighb) ) |
||
15 | it.next() |
||
16 | out.next() |
||
17 | </code></pre> |
||
18 | |||
19 | _max_ is a Python function that return the maximum value of any *"iterable"* object. |
||
20 | |||
21 | NeighborhoodIterators are also available: |
||
22 | |||
23 | <pre><code class="ruby"> |
||
24 | neighb=createNeighborhood(imIn, NeighborList.neighborsHex2D) |
||
25 | it=imIn.imageData() |
||
26 | while it.isNotFinished(): |
||
27 | neighb.setCenter(it) |
||
28 | nit=neighb.__iter__() |
||
29 | while nit.isNotFinished(): |
||
30 | print nit.getOffset() , nit.getPixel() |
||
31 | nit.next() |
||
32 | it.next() |
||
33 | </code></pre> |
||
34 | |||
35 | The _getOffset_ is available for complex algorithms, as well as the _getPixel._ |