OpenCV MSER从截图中检测区域 - Python

时间:2018-01-08 22:26:00

标签: python opencv mser

我看到了这个例子:OpenCV MSER detect text areas - Python

我尝试使用该代码,但它不起作用。 错误是:

hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions] AttributeError: 'list' object has no attribute 'reshape'

变量p来自哪里?

1 个答案:

答案 0 :(得分:0)

整个构造[cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]被称为'列表理解'。您可以在许多地方阅读更多关于它们的信息。

在您引用的代码中regions是可以攻击的代码,例如列表。这意味着,当您撰写for p in regions p时,会假设regions中的每个值,一次一个。那就是p的来源。

由于p参与列表理解,因此可以在表达式中使用它。在这种情况下,表达式为cv2.convexHull(p.reshape(-1, 1, 2))。因此,整个构造的值是cv2.convexHull(p.reshape(-1, 1, 2))中每个p的{​​{1}}值。