OpenCV изменить интенсивность RGB

Я работаю с OpenCV 2.4.11 + Qt и пытаюсь сделать видео и изменить интенсивность красного / синего или зеленого канала, но не нашел никаких функций или настроек для этого. Кто-нибудь знает как это сделать?


person Phil    schedule 30.09.2015    source источник


Ответы (1)


Если вы просто хотите изменить значение R / G / B для одного конкретного пикселя, используйте что-то вроде:

cv::Mat img; // suppose this is one frame of the video, in CV_BGR
...
img.at<cv::Vec3b>(idx_row, idx_col) = cv::Vec3b(new_b, new_g, new_r); // change here

Если вы хотите эффективно изменить все значения данного канала без изменения других каналов, ознакомьтесь с Как установить для данного канала cv :: Mat значение данное значение эффективно, не меняя другие каналы?

person herohuyongtao    schedule 30.09.2015
comment
Да, я хочу создать слайдер для каждого канала, который будет изменять изображение. Но когда я устанавливаю каждый пиксель на заданное значение, изображение отверстия, например. серый или что-то в этом роде. как я могу просто изменить изображение, чтобы оно стало более синим или более красным. - person Phil; 30.09.2015
comment
@Phil В этом случае вы можете попробовать наложить синее / зеленое / красное изображение на исходное изображение, чтобы имитировать эффект. - person herohuyongtao; 30.09.2015