Morph-M Python - Basic Operator » History » Revision 2
Revision 1 (Serge Koudoro, 10/26/2009 11:27 AM) → Revision 2/4 (Serge Koudoro, 10/26/2009 11:29 AM)
h1. Morph-M Python - Basic Operator This following example show you, by 8 bits image Inversion, how you can create and call your operator. <pre><code class="ruby"> #Don't forget morphee importation import morphee # pixel's inversion Operator (8 bits version) : def invert8(val): return 255-val # image inversion function: def testInvert8(im): morphee.ImUnaryOperation(im,invert8,im) # lambda version : def testInvert8_lambda(im): # instead of invert8, we can use a lambda-fonction # Better and lighter morphee.ImUnaryOperation(im, lambda x:255-x,im) </code></pre> An other example: Color conversion (RGB to Gray) : <pre><code class="ruby"> #Don't forget morphee importation import morphee def RGBtoGray(valRGB): # valRGB est normalement un pixel_3<UINT8> converti # en un 3-tuple. assert(type(valRGB)==type((),))# Check type (we need tuple) assert(len(valRGB)==3)# Check if it is 3-tuple # Hmm, beautiful conversion ! return (valRGB[0]+valRGB[1]+valRGB[2])/3 def testRGBtoGray(imRGB,imGray): morphee.ImUnaryOperation(imRGB,RGBtoGray,imGray) </code></pre> This example show you an method to construct an operator by using class <pre><code class="ruby"> #Don't forget morphee importation import morphee #Add a constant class AddNum: def __init__(self, n): self.number=n def __call__(self, val): if val+self.number > 255: return 255 else: return val+self.number def testAddCte(im, k): op=AddNum(100) # The __call__() function is simply used to #call on a callable object like the callback() #function outside the class morphee.ImUnaryOperation(im,op, im) </code></pre>