【问题标题】:OpenCV with Python error for arcLength带有 Python 错误的 OpenCV arcLength
【发布时间】:2023-04-03 18:57:01
【问题描述】:

我的代码有问题,找不到合适的解决方案。我正在使用 Python 2.7.10 和 OpenCV 3.0。我阅读了两张图片,并希望将其中一张图片(模板)与另一张图片的轮廓相匹配,但出现以下错误:

error: (-215) count >= 0 && (depth == CV_32F || depth == CV_32S) in function cv::arcLength

我的代码如下所示:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.bilateralFilter(gray, 11, 10, 17)
edges = cv2.Canny(gray, 100, 20)

contours,hierarchy, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
    ret = cv2.matchShapes(c, compare, 1, 0.0)
    if ret < 0.5:
        peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)

灰度图和对比图都是灰度图。错误显然是说我需要我的数组是浮点数或双精度数,但我不知道如何在 python 中转换它,我发现了许多函数工作的示例,代码似乎几乎相同。

此外,在大多数应用程序中,我注意到在大多数示例中 findContours() 函数返回 2 个值,但如果我不给它 3 个值,则会收到错误。

请帮我找出问题!

【问题讨论】:

    标签:
    python
    opencv
    image-processing
    opencv3.0