使用opencv进行颜色检测

时间:2016-05-08 20:22:59

标签: java opencv computer-vision

我正在尝试使用opencv从下图中提取标题栏。

enter image description here

我使用以下代码 -

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat original = Imgcodecs.imread("D:/test_bg_extract.png", Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
    Mat hsvMat = new Mat();
    Imgproc.cvtColor(original, hsvMat, Imgproc.COLOR_BGR2HSV);
    Mat dst = new Mat();
    Core.inRange(hsvMat, new Scalar(23,231,205), new Scalar(23,231,205), dst);

我使用颜色选择器来确定标题栏的HSV值(从hsvMat转换为显示图像)。当运行代码显示输出时,我看到一个空白屏幕。我不知道我做错了什么。我选错了HSV颜色吗?如果我知道确切的RGB代码,那么我是否应该将图像转换为HSV? (但这似乎是互联网上许多代码示例的标准方法)。

1 个答案:

答案 0 :(得分:0)

好的,我使用基于RGB的颜色解决了它,切换到BGR同时指定了我需要的颜色。所以这有效 -

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat original = Imgcodecs.imread("D:/test_bg_extract.png", Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
    Mat dst = new Mat();
    Core.inRange(original, new Scalar(132,178,205), new Scalar(132,178,205), dst);