Работя с OpenCV 2.4.11+Qt и се опитвам да направя видео и да променя интензитета на червения/синия или зеления канал, но не намерих функции или настройки за това. Някой знае ли как се прави това?
OpenCV променя RGB интензитета
Отговори (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
Да, искам да създам плъзгач за всеки канал, който ще променя изображението. Но когато задам всеки пиксел на дадена стойност, изображението на дупката е напр. сиво или каквото и да е. как мога просто да променя изображение, така че да стане по-синьо или по-червено.
- person Phil; 30.09.2015
@Phil В този случай можете да опитате да наслагвате синьо/зелено/червено изображение върху оригиналното изображение, за да симулирате ефекта.
- person herohuyongtao; 30.09.2015