Как нарисовать прозрачное изображение поверх прямой трансляции с камеры в opencv

Мне нужно нарисовать прозрачное изображение поверх прямой трансляции с камеры. Ниже приведен файл png, который будет отображаться в виде наложения на канал камеры.

Ниже приведен фрагмент кода для получения кадров с камеры и отображения его на экране. Я также пытался нарисовать круг как оверлей, но круг не прозрачный. Я думаю, что это неправильно или что-то упущено в следующем фрагменте кода?

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include 
#include 
#include 

using namespace cv;
using namespace std;

int main () {

 Mat src;
 Mat overlay = imread ( "circle.png", -1 );

 VideoCapture cap ( 0 );

 while ( 1 ) {

 cap >> src;
 cvtColor( src, src, CV_BGR2BGRA );
 overlay.copyTo( src.colRange(0,400).rowRange(0,400));
 imshow ( "src",src );
 waitKey( 10 );

 }

 return 0;
 }

Ответы на вопрос(2)

Ваш ответ на вопрос