Поиск обьекта по его цвету. Hsv. cvInRangeS. CV_BGR2HSV

HSV (англ. Hue, Saturation, Value — тон, насыщенность, значение) — цветовая модель, в которой координатами цвета являются:
Hue — цветовой тон, (например, красный, зелёный или сине-голубой). Варьируется в пределах 0—360°, однако иногда приводится к диапазону 0—100 или 0—1.
Saturation — насыщенность. Варьируется в пределах 0—100 или 0—1. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. А чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому.
Value (значение цвета) или Brightness — яркость. Также задаётся в пределах 0—100 и 0—1.

Модель HSV была создана Элви Реем Смитом, одним из основателей Pixar, в 1978 году. Она является нелинейным преобразованием модели RGB.

Нужно создать новое изображение.
IplImage imgHSV = cvCreateImage(cvGetSize(orgImg), 8, 3);
Конвертировать его в HSV
cvCvtColor(orgImg, imgHSV, CV_BGR2HSV);
Изображение для результата(0 или 255)
IplImage imgThreshold = cvCreateImage(cvGetSize(orgImg), 8, 1);
После этого нужно отсечь ненужные пиксели
cvInRangeS(imgHSV, min, max, imgThreshold);
Итоговая функция.
public IplImage hsvThreshold(IplImage orgImg, CvScalar min, CvScalar max) {
        IplImage imgHSV = cvCreateImage(cvGetSize(orgImg), 8, 3);
        cvCvtColor(orgImg, imgHSV, CV_BGR2HSV);
        IplImage imgThreshold = cvCreateImage(cvGetSize(orgImg), 8, 1);
        cvInRangeS(imgHSV, min, max, imgThreshold);
        cvReleaseImage(imgHSV);
        return imgThreshold;
    }
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: