Java opencv inRange阈值函数使我的图像变成三个不同的图像?

Java opencv inRange阈值函数使我的图像变成三个不同的图像?,java,c++,swing,opencv,Java,C++,Swing,Opencv,我正在使用JavaOpenCV,这是我正在执行的一行 Imgproc.cvtColor(originalImage, hsvImage, Imgproc.COLOR_BGR2HSV); Core.inRange(hsvImage, low, high, thresholdImage); low和high是一些标量值(每个值大小为3)。你可以看到我的原始图像有3个通道,但是我的thresholdImage只有一个通道,为什么?因此,当我尝试显示thresholdImage时,我在JFrame中得

我正在使用JavaOpenCV,这是我正在执行的一行

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

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

事实证明,
Core.inRange
将第二个参数(即
Mat
)更改为单通道图像。因此,为了获得3个通道,我需要使用
Imgproc.cvtColor
函数将其重新转换回3个通道。

我认为问题已经完全解决了。因此,中国的政策需要具体的问题,我认为这个问题非常具体,我倾向于尽可能地让我的问题具体,而不需要不必要的信息。请参考我的答案,因为我想我已经弄明白了。如果我错了,请纠正我。谢谢