opencv 图片透明度修改

在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);    
        }
    }    
}

 

posted on 2014-01-19 10:30  NewPanderKing  阅读(7076)  评论(0)    收藏  举报

导航