在OpenCV中创建透明图像

时间:2013-08-28 15:20:33

标签: c++ opencv image-processing

我正在尝试在OpenCV中创建一个透明图像并将其作为jpg传播,但没有任何成功。

我的代码是这样的:

string outputImageName="myimage.jpg";
Mat outputImage(outputRows,outputCols,CV_8UC4);
outputImage=cv::Scalar(255,255,255,255);
imwrite(outputImageName,outputImage);

但图像不透明,颜色为白色。

我该怎么做?

如果OpenCV无法执行此操作,是否有我用于此的免费库?

2 个答案:

答案 0 :(得分:5)

看来JPEG doesn't support transparency。但是,PNG会这样做,因此您需要更改输出文件格式。

此外,alpha值为255表示完全可见性。将alpha值更改为零以使图像完全透明:

outputImage=cv::Scalar(255,255,255,0);

答案 1 :(得分:3)

无法使 .jpg 图像透明,格式不支持,请尝试 .png