2017-10-20 12 views
-1

のpython 2.7エラー:関数弧長で(-215)数> = 0 &&(深== CV_32F ||深== CV_32S)私が使用している

私が実行しようとすると、私はこのエラーを取得していますその上にイプシロン操作は、 これは、ここで何を変更するかわからない私のコード

import cv2 
import numpy as np 

img = cv2.imread('img.jpeg') 
img = cv2.convertScaleAbs(img) 
epsilon = 0.01 * cv2.arcLength(img, True) 
approx = cv2.approxPolyDP(img, epsilon, True) 
hull = cv2.convexHull(img) 

これはエラーで、

Traceback (most recent call last): 
    File "/home/decentmakeover2/lanedetect.py", line 6, in <module> 
    epsilon = 0.01 * cv2.arcLength(img, True) 
error: /home/decentmakeover2/opencv- 
3.2.0/modules/imgproc/src/shapedescr.cpp:285: error: (-215) count >= 0 && 
(depth == CV_32F || depth == CV_32S) in function arcLength 

イム任意のアイデアですか?

編集:

Traceback (most recent call last): 
    File "/home/decentmakeover2/lanedetect.py", line 8, in <module> 
    epsilon = 0.01 * cv2.arcLength(img,True) 
TypeError: curve data type = 6 is not supported 
>>> 

enter image description here

+0

Pythonのブール値または演算子は '||'ではなく 'or'です。 –

+0

しかし、私のコードには「または」はありません。私はここで何かmisiingしていますか? – Ryan

+0

ここでのエラーは、 'count'は'> = 0'ではないことを示しています。これは、 'Mat'で' checkVector(2) 'が失敗したこと、またはdtypeが32ビットのfloatまたはintでないことを意味します正しいビット深度。ソースコードはhttps://github.com/opencv/opencv/blob/fee87ea3f752038ef303f37b72a46633ae236968/modules/imgproc/src/shapedescr.cpp#L277で確認できます。あなたのjpegの色深度は何ですか? 'arclength'を満足させるためには、32ビットのfloat/intに変換する必要があります。 – EdChum

答えて

1

arcLength(またapproxPolyDPconvexHull)が入力

Input vector of 2D points

なく、画像として必要です。

すべてのこれらの機能はポイント上で動作する、それはアーク(又は多角形近似、又は凸包)画像用の長さを計算する意味がありません。

関連する問題