Python 执行opencv矩函数时获取零除法错误

Python 执行opencv矩函数时获取零除法错误,python,opencv,Python,Opencv,我正在开发一个python应用程序,它可以在特定的图像中找到轮廓和时刻。代码片段如下所示 self.blob = cv2.imread('output-17-03-07-13-28.bmp') gray = cv2.cvtColor(self.blob,cv2.COLOR_BGR2GRAY) contours, hierarchy = cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) count = str(len(con

我正在开发一个python应用程序,它可以在特定的图像中找到轮廓和时刻。代码片段如下所示

self.blob = cv2.imread('output-17-03-07-13-28.bmp')
gray = cv2.cvtColor(self.blob,cv2.COLOR_BGR2GRAY) 
contours, hierarchy = cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
count = str(len(contours))
下面的块计算完美工作的轮廓

self.areaArray = []
for i, c in enumerate(contours):
    r = (randint(0,255))
    g = (randint(0,255))
    b = (randint(0,255))
    area = cv2.contourArea(c)
    self.areaArray.append(area)
    #print i,self.areaArray[i]
    cnt = contours[i]
    cv2.drawContours(self.blob, [cnt], 0, (b, g, r), -1)
下面的块计算力矩

moments = [cv2.moments(cnt) for cnt in contours]
centroids = [(int(M['m10'] / M['m00']), int(M['m01'] / M['m00'])) for M in moments]
for c in centroids:
    cv2.circle(self.blob, c, 5, (0, 0, 0))
    cv2.imshow('img', self.blob)
一旦我运行脚本,我就会得到错误

ZeroDivisionError: float division by zero

可以添加完整的回溯吗?回溯(最近一次调用):文件“E:\Project\blobananalysis.py”,第218行,在ui.setupUi(BlobAn)中,文件“E:\Project\blobananalysis.py”,第34行,在setupUi质心=[(int(M['m10']/M['m00']),int(M['m01']/M['m00']),表示M in时刻]ZeroDivisionError:float division by zero请在您的问题下找到
edit
链接显然,
M['m00']
是0,因此请调试您自己的代码以了解原因