代码之家  ›  专栏  ›  技术社区  ›  sazr

不规则形状上的Zernike矩误差?

  •  0
  • sazr  · 技术社区  · 7 年前

    当我打电话 mahotas.features.zernike_moments

    fv = mahotas.features.zernike_moments(mask, cv2.minEnclosingCircle(cnt)[1], degree=8)
    File "C:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\mahotas\features\zernike.py", line 59, in zernike_moments
        c0,c1 = center_of_mass(im)
    ValueError: too many values to unpack (expected 2)
    

    enter image description here

    enter image description here

    penStrokes = np.array(penStrokes)
    peri = cv2.arcLength(penStrokes, True)
    approx = cv2.approxPolyDP(penStrokes, 0.02 * peri, True) 
    mask = np.zeros((frame.shape[0], frame.shape[1], 1), dtype='uint8')
    cv2.drawContours(mask, [approx], -1, (255,), -1)
    cnt = cv2.findContours(mask.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[1][0]
    cv2.imshow('mask', mask)
    
    
    # Determine shape from zernike moments
    fv = mahotas.features.zernike_moments(mask, cv2.minEnclosingCircle(cnt)[1], degree=8)
    print(fv)
    

    编辑

    1 回复  |  直到 7 年前
        1
  •  0
  •   luispedro    7 年前

    这里是麻将馆的作者。

    mask 是三维图像(尽管最后一个维度是 1

    fv = mahotas.features.zernike_moments(mask[:,:,0], \
                            cv2.minEnclosingCircle(cnt)[1], \
                            degree=8)