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._ |