Java opencv inRange 阈值函数使我的图像变成三个不同的图像?
Posted
技术标签:
【中文标题】Java opencv inRange 阈值函数使我的图像变成三个不同的图像?【英文标题】:Java opencv inRange thresholding function makes my image into three different images? 【发布时间】: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 的政策需要具体的问题,我认为这个问题非常具体,我倾向于在没有不必要信息的情况下尽可能具体地提出问题。请参考我的回答,因为我想我已经弄清楚了。如果我错了,请纠正我。谢谢。 【参考方案1】:原来Core.inRange
将第二个参数Mat
更改为单通道图像。所以为了得到 3 个频道,我需要使用Imgproc.cvtColor
函数将其重新转换回 3 个频道。
【讨论】:
以上是关于Java opencv inRange 阈值函数使我的图像变成三个不同的图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何在OpenCV中为InRange阈值选择颜色的最佳HSV值
在 OpenCV (Java) 中获取正确的 HSV 颜色 inRange