【问题标题】:OpenCV project crashes when applying histogram to black image将直方图应用于黑色图像时,OpenCV 项目崩溃
【发布时间】:2012-05-24 14:20:38
【问题描述】:

我正在尝试对使用 openCV 的项目进行故障排除。在某处,有一个直方图均衡化 - 当输入图像为纯黑色(或纯白色或纯色)时崩溃。
我一直在尝试解决我得到的调试断言失败 - “表达式:向量下标超出范围” - 不成功。注意:该方法不使用 EqualizeHistogram,它手动创建直方图,计算每个级别的像素,进行平均 - 就像教科书中一样。
如果我可以隔离颜色分布离散的情况 - 只有一个颜色的尖峰 - 我不能做这个优化,并防止崩溃。到目前为止,程序崩溃的唯一情况是图像直方图在一种颜色中只有一个值,而在其他任何地方都为 0。
如何查看图像中有多少种颜色? 罢工>
请帮忙 !谢谢。
编辑:我所要做的就是用 OpenCV 方法 cvEqualizeHistogram 替换不起作用的方法。

【问题讨论】:

  • 如何查看图像中有多少种颜色? -- 我认为直方图是理想的。呵呵。如果您可以使用小程序和测试图像重现此问题,请提交错误报告——如果他们能够立即重现它,它可能会很快得到修复......

标签: c++ opencv colors


【解决方案1】:

根据我的经验,opencv 没有经过很好的同行评审和适当的测试,这导致它在边界情况下出现奇怪的行为(我在使用 GrabCut 时遇到了一些问题)。但是由于函数直方图已经存在很长时间,我怀疑它是否仍然存在错误。也许你做错了什么?如果您有非常小的人造垫,您是否也可以重现错误?也许是 1x2?

【讨论】:

  • 是的,我创建了一个自定义图像(不是那么小)。我正在编辑我的帖子以显示我试图排除故障的代码实际上并未使用 cvEqualizeHistogram,它使用了一些其他 OpenCV 方法并手动进行均衡。所以我会尝试只使用 EqualizeHistogram。希望它有效。
猜你喜欢
  • 2013-02-07
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2023-03-04
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多