【问题标题】:Java opencv inRange thresholding function makes my image into three different images?Java opencv inRange 阈值函数使我的图像变成三个不同的图像?
【发布时间】:2017-05-11 01:38:12
【问题描述】:

我正在使用 java opencv,这是我正在执行的行。

Imgproc.cvtColor(originalImage, hsvImage, Imgproc.COLOR_BGR2HSV);
Core.inRange(hsvImage, low, high, thresholdImage);

low 和 high 是一些标量值(每个大小为 3)。所以你可以看到我的原始图像有 3 个通道,但我的 thresholdImage 只有一个通道,为什么?因此,当我尝试显示thresholdImage 时,我的JFrame 中出现了三个小图像。如何解决这个问题?

【问题讨论】:

  • 我认为这个问题很完整。 SO 的政策需要具体的问题,我认为这个问题非常具体,我倾向于在没有不必要信息的情况下尽可能具体地提出问题。请参考我的回答,因为我想我已经弄清楚了。如果我错了,请纠正我。谢谢。

标签: java c++ swing opencv


【解决方案1】:

原来Core.inRange 将第二个参数Mat 更改为单通道图像。所以为了得到 3 个频道,我需要使用Imgproc.cvtColor 函数将其重新转换回 3 个频道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多