Каким будет диапазон hsv для этого в Opencv?

Я немного запутался прямо сейчас, я не могу найти правильное значение для этого зеленого квадрата. Вот изображение введите здесь описание изображения

Значения hsv, которые я выбираю: -

cv::inRange(src, Scalar(25, 20, 20), Scalar(85, 255, 200), src);

Вот результат этого: - введите здесь описание изображения

Каково правильное значение для hsv, которое я должен выбрать?


person user3647254    schedule 29.08.2016    source источник


Ответы (1)


Эти диапазоны должны работать достаточно хорошо:

inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask);

введите здесь описание изображения

Помните, что OpenCV хранит изображения как BGR, а не как RGB. Поэтому при преобразовании в HSV обязательно используйте COLOR_BGR2HSV, а не COLOR_RGB2HSV.

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    Mat3b img = imread("path_to_image");

    Mat3b hsv;
    cvtColor(img, hsv, COLOR_BGR2HSV);

    Mat1b mask;
    inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask);

    imshow("Mask", mask);
    waitKey();

    return 0;
}

Дополнительную информацию о диапазонах HSV можно найти здесь и здесь

person Miki    schedule 29.08.2016
comment
Спасибо, это была глупая ошибка, я забыл преобразовать его в HSV..... Также не могли бы вы сказать мне, как выбрать значения, не соответствующие диапазону для HSV, я не знаю, как их найти.... - person Utkarsh Dixit; 29.08.2016