cv2.moments больше не работает после миграции с python27 на python 37 - PullRequest
0 голосов
/ 14 января 2020

Я создал python скрипт, который использует opencv и команду cv2.moments, чтобы получить центр контуров и другую информацию. Он работал нормально, пока я не перешел на python 3 и не переустановил opencv. Теперь я получаю следующую ошибку:

    Traceback (most recent call last):
  File "opencvQuestion.py", line 91, in <module>
    main()
  File "opencvQuestion.py", line 72, in main
    referentialDetector()
  File "opencvQuestion.py", line 37, in referentialDetector
    M1 =cv2.moments(k)
TypeError: Expected Ptr<cv::UMat> for argument '%s'

код ниже:

def referentialDetector():
    # Create mask to detect referential:
    global cnts1, blackAndWhiteImage,pts1,pts2, warpMatrix, shape, passFound
    cnts1 = cv2.findContours(np.array(blackAndWhiteImage), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
    # loop over the contours found in blackAndWhiteImage:
    if len(cnts1)>0:    
        cX1 = []
        cY1 = []
        for k in cnts1:
            #k = cv2.UMat(k,ranges=0)
            M1 =cv2.moments(k)
            if M1["m00"]!=0:
                print("detector4")
                cX1.append(int((M1["m10"] / M1["m00"])))
                cY1.append(int((M1["m01"] / M1["m00"])))
        print(cX1)

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...