我正在使用python 2.7
当我尝试对其运行epsilon操作时,我收到此错误, 这是我的代码
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
>>>
答案 0 :(得分:1)
arcLength
(以及public string FunctionHandler(ILambdaContext context)
{
context.Logger.LogLine("Entering function");
try
{
var driver = new InternetExplorerDriver();
context.Logger.LogLine("Navigating to URL");
driver.Navigate().GoToUrl("http://www.google.com/");
context.Logger.LogLine("Returning Done");
return "Done";
}
catch (Exception e)
{
context.Logger.LogLine("Oops: " + e);
return "Failed";
}
}
和approxPolyDP
)需要输入
2D点的输入矢量
而不是图像。
所有这些功能都适用于点,计算弧的长度(或多边形近似或)是没有意义的凸包)用于图像。
答案 1 :(得分:1)
当我尝试生成2D点组的凸包时,我也遇到了此错误。 错误消息如下所示:
cv2.error:OpenCV(4.2.0)C:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ convhull.cpp:137:错误:(-215:断言失败)总计> = 0 &&(深度== CV_32F ||深度== CV_32S)在函数'cv :: convexHull'
中原来的原因是我的输入点是浮点数而不是整数。因此,我使用 numpy.astype(np.int)更改输入点的数据类型。