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