Я создал 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)
Спасибо за помощь!