在opencv中默认载入的图像时3通道图像RGB,但是如果要修改成透明图像,或修改透明度时就发现捉襟见肘了,此时需要把图像修改为4通道图像RGBA,其中A通道就是修改透明度的关键,取值范围0到255,0纯透明,255不透明;保存时不能保存为jpeg,因为jpeg格式图像不支持透明效果。
实现转化关键代码如下:
void 3ChannelsTo4Channels(IplImage* src,IplImage* des) { CvScalar p1,p2; int width = src->width; int height = src->height; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { p1 = cvGet2D(src,j,i); p2.val[0] = p1.val[0]; p2.val[1] = p1.val[1]; p2.val[2] = p1.val[2]; p2.val[3] = 255; cvSet2D(des,j,i,p2); } } }
