OpenCV Java RGB还是HSV?
我试图破译一些我想使用的代码,但代码需要校准,但我不知道它是使用HSV还是RGB? 很抱歉,我对OpenCV不太熟悉。 以下是代码片段:OpenCV Java RGB还是HSV?,java,opencv,Java,Opencv,我试图破译一些我想使用的代码,但代码需要校准,但我不知道它是使用HSV还是RGB? 很抱歉,我对OpenCV不太熟悉。 以下是代码片段: Imgproc.cvtColor(matOriginal,matHSV,Imgproc.COLOR_BGR2HSV); Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh); Imgproc.findContours(matThresh, con
Imgproc.cvtColor(matOriginal,matHSV,Imgproc.COLOR_BGR2HSV);
Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh);
Imgproc.findContours(matThresh, contours, matHeirarchy, Imgproc.RETR_EXTERNAL,
Imgproc.CHAIN_APPROX_SIMPLE);
我知道我必须更改上下限,但我应该使用RGB值还是HSV值?
谢谢
该行确保matHSV
的值采用HSV颜色系统。因此,从现在起,考虑到所有值均为HSV,应在matHSV
上执行任何操作。因此,在这方面:
Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh);
下限
和上限
应为HSV值。上限和下限现在应为H-S-V顺序的值?只是检查一下,因为我知道它是按RGBYes H-S-V顺序翻转的。对于RGB,它实际上并没有翻转。这是BGR,这是一个完全不同的颜色系统,从RGB(他们是相同的,但在实践中翻转,但理论上他们是不同的系统)实际上你的声明似乎是错误的BGR;我会看到例如@Miki hhhh的好文章。。无论如何,这与我的评论并不矛盾,即BGR是RGB以外的其他格式。我认为将RGB命名为翻转BGR就像将HSV命名为BGR格式的F(B,G,R):D
Core.inRange(matHSV, LOWER_BOUNDS, UPPER_BOUNDS, matThresh);