OpenCV 2.4如何将带有alpha通道的JPEG转换为PNG

7
我有一个JPEG和一个掩码。我想用三个JPEG通道创建一个带有Alpha通道的PNG,而该Alpha通道应该是掩码。如何使用OpenCV实现这一点?
问候
2个回答

8
std::vector<cv::Mat> channels;
cv::split(jpgImage, channels);
channels.push_back(mask);
cv::Mat bgraImage;
cv::merge(channels, bgrAImage);

有关拆分和合并函数的文档


6
感谢您的回答,我找到了第二个解决方案:
cv::Mat transparent( height, width, CV_8UC4);
cv::Mat srcImg[] = {JPEG_img, alpha_Mask};
int from_to[] = { 0,0, 1,1, 2,2, 3,3 };
cv::mixChannels( srcImg, 2, &transparent, 1, from_to, 4 );

这个很完美,不确定哪种解决方案更好。


2
事实上,在回答之前,我有点懒得检查mixChannels文档,split/merge很简单。但是mixChannels可能更快,因为您不需要临时矩阵。 - remi
1
是的,你可能是对的,所以我会将这个答案标记为正确的。谢谢。 - Maecky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接