2016-08-29 4 views
0

Я немного запутался прямо сейчас, я не могу найти правильное значение для этого зеленого квадрата. Вот изображение enter image description hereКаким будет диапазон hsv для этого в Opencv?

Значения ВПГ, что я выбираю являются: -

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

Вот выход из этого: - enter image description here

Что такое правильное значение для ВПГ, что я должен выберите?

ответ

1

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

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

enter image description here

Помните, что 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 колеблется here и here

+0

Спасибо, это была глупая ошибка, я забыл, чтобы преобразовать его в HSV ..... Кроме того, вы можете сказать мне, как выбрать InRange значения для HSV я не знаю, как их найти .... –

+0

Проверьте правильность! ; D – Miki