【问题标题】:OpenCV Error: Assertion failed (L.channels() == 1 && I.channels() == 1) in connectedComponents_sub1 [closed]OpenCV 错误:connectedComponents_sub1 中的断言失败 (L.channels() == 1 && I.channels() == 1) [关闭]
【发布时间】:2017-05-06 13:20:21
【问题描述】:

我在 OpenCV (python) 中遇到了以下错误,并在 Google 上搜索了很多但无法解决。

如果有人能给我一些线索,我将不胜感激。

OpenCV 错误:断言失败 (L.channels() == 1 && I.channels() == 1) 在 connectedComponents_sub1 中,文件 /home/snoopy/opencv- 3.1.0/modules/imgproc/src/connectedcomponents.cpp,第 341 行 回溯(最近一次通话最后): 文件“test.py”,第 30 行,在 植物 = 分析植物.analyzeSideView(植物) 文件“/home/snoopy/Desktop/Leaf-201612/my-work- 编辑/ripps/src/analyzePlant.py",第 229 行,在 analyzeSideView plant_img = self.__extractPlantArea(plant_img) 文件“/home/snoopy/Desktop/Leaf-201612/my-work- 编辑/ripps/src/analyzePlant.py",第 16 行,在 __extractPlantArea 输出 = cv2.connectedComponentsWithStats(植物,4,cv2.CV_32S) cv2.error: /home/snoopy/opencv- 3.1.0/modules/imgproc/src/connectedcomponents.cpp:341: 错误: (-215) > L.channels() == 1 && I.channels() == 1 在函数中 connectedComponents_sub1

【问题讨论】:

  • 不幸的是,没有minimal reproducible example
  • 什么是“罕见”错误?
  • 按照下面的链接,我添加了 cv2.IMREAD_GRAYSCALE 并且错误 >Assertion failed (L.channels() == 1 && I.channels() == 1) in connectedComponents_sub1 >已解决。 image = cv.imread("/home/snoopy/Desktop/Leaf-201612/cropped-image/cropped_125254_ver2.bmp",cv2.IMREAD_GRAYSCALE) 完成了这项工作。 link 无论如何感谢-Wayne Werner

标签: python python-2.7 opencv opencv3.1 connected-components


【解决方案1】:

让我们分析一下:

断言失败(L.channels() == 1 && I.channels() == 1)

您传递给某个函数的图像应该是 1 个通道(灰色而不是彩色)。

__extractPlantArea(plant_img)

这发生在您的代码中,恰好在名为 __extractPlantArea 的函数处。

cv2.connectedComponentsWithStats

当您调用名为 connectedComponentsWithStats 的 OpenCV 函数时。

结论:

不要将彩色(BGR)图像传递给connectedComponentsWithStats

【讨论】:

  • 是的,原来是这个原因..用cv2.IMREAD_GRAYSCALE修复了谢谢Humam!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
相关资源
最近更新 更多