Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python27迁移到Python37后,cv2.0不再工作_Python_Python 3.x_Python 2.7_Opencv_Opencv Contour - Fatal编程技术网

从python27迁移到Python37后,cv2.0不再工作

从python27迁移到Python37后,cv2.0不再工作,python,python-3.x,python-2.7,opencv,opencv-contour,Python,Python 3.x,Python 2.7,Opencv,Opencv Contour,我制作了一个python脚本,它使用opencv和cv2.moments命令来获取轮廓中心和其他信息。在我迁移到Python3并重新安装opencv之前,它工作得很好。现在我得到以下错误: Traceback (most recent call last): File "opencvQuestion.py", line 91, in <module> main() File "opencvQuestion.py", line 72, in main r

我制作了一个python脚本,它使用opencv和cv2.moments命令来获取轮廓中心和其他信息。在我迁移到Python3并重新安装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'

谢谢你的帮助

您是否碰巧也切换了OpenCV版本?你以前用过哪个版本,现在用的是哪个?另外,我想知道,在cnts1和M1=cv2中的k中,如何
cnts1=cv2。在过去,矩(k)
是如何工作的
findContours
至少有两个返回值(对于某些版本,甚至三个),即使对于OpenCV 2.4.x也是如此。同样,你能提供准确的版本信息吗?嗨@HansHirse,谢谢你的回答。是的,我必须重新安装opencv,所以我使用V4。目前为2.0。在某一点上,我得到了image,cnts,hierarchy=cv2.findContours(…),但代码用于任何方式
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)