图像的四则运算不知道哪里出了问题,求解答

请仿照“图像的四则运算”,自行完成-、*、/操作。
实现将彩色图片转化为黑白(灰度)图片。
import numpy as np
from PIL import Image
import numpy as np
from PIL import Image

class ImageObject:
def init(self,path = ""):
self.path = path
try:
self.data = np.array(Image.open(path))
except:
self.data = None

def __add__(self,other):
    Image = ImageObject()
    try:
        Image.data = np.mod(self.data + other.data,255)
    except:
        Image.data = self.data
    return Image

def __sub__(self,other):
    Image = ImageObject()
    try:
        Image.data = np.mod(self.data - other.data,255)
    except:
        Image.data = self.data
    return Image

def __mul__(self,factor):
    Image = ImageObject()
    try:
        Image.data = np.mod(self.data * factor,255)
    except:
        Image.data = self.data
    return Image

def __truediv__(self,factor):
    Image = ImageObject()
    try:
        Image.data = np.mod(self.data // factor,255)
    except:
        Image.data = self.data
    return Image

def saveImage(self,path):
    try:
        im = Image.fromarray(self.data)
        im.save(path)
        return True
    except:
        return False

a=ImageObject("earth.jpg")
b=ImageObject("gray.png")
(a+b).saveImage("result__add.png")
(a-b).saveImage("result__sub.png")
(a*b).saveImage("result__mul.png")
(a/b).saveImage("result__div.png")

乘除都需要传递因子参数,尝试这样调用类函数。

a = ImageObject("sample1.png")
b = ImageObject("gray.png")
a.__add__(b).saveImage("result__add.png")
a.__sub__(b).saveImage("result__sub.png")
a.__mul__(2).saveImage("result__mul.png")
a.__truediv__(2).saveImage("result__div.png")