如何创建透明垫

时间:2020-01-28 10:50:25

标签: c++ opencv

我正在尝试创建透明垫,但得到的是黑色背景图像,因此任何想法该怎么做,因为我必须将此图像与照相机视频源上的某些内容叠加。

我尝试过的代码。

cv::Mat comp = cv::Mat::zeros( currentImage.size(), CV_8UC4 );
comp.setTo(cv::Scalar(0,0,0,0));
imshow( "transparent", comp );   // show black background image.

1 个答案:

答案 0 :(得分:0)

由于@HansHire和@Scheff,我们发现问题出在cv :: imshow()中,它不呈现透明性,因此要检查Mat的透明性,需要使用系统图像查看器将其转储到磁盘以进行检查,这会非常透明化好

cv::Mat comp = cv::Mat::zeros( currentImage.size(), CV_8UC4 );
comp.setTo(cv::Scalar(0,0,0,0));
// imshow( "transparent", comp );   // show black background image because it cant render transparency .
imwrite( "C:/opencv_dump.png", comp );  // transparent upon opening , thumbnail may look black.