У меня есть 3-канальный IplImage. Я хотел бы создать 4-канальное изображение и установить для него значение альфа-канала менее 1,0, чтобы сделать его полупрозрачным.
Сначала я установил альфа-канал (4-й канал) на 0,5:
cvSet(Image_c4, cvScalar(0,0,0,0.5);
Вот команда, которую я использовал для копирования 3-канального изображения в 4-канальное.
cvCvtColor(Image_c3, Image_c4, CV_RGB2RGBA);
Проблема: Image_c3 цветной. Image_c4 становится копией Image_c3 в оттенках серого (и без прозрачности).
Обновление: оказалось, что приведенный выше код на самом деле правильный и работает, и на самом деле он более лаконичен, чем предлагаемые решения в ответах ниже. У меня была несвязанная ошибка где-то еще.