Wie zeichnet man ein transparentes Bild über Live-Kamera-Feed in opencv

Ich muss ein transparentes Bild über den Live-Kamera-Feed zeichnen. Das Folgende ist die PNG-Datei, die als Overlay über dem Kamera-Feed angezeigt werden soll.

Das Folgende ist der Code, mit dem die Bilder von der Kamera abgerufen und auf dem Bildschirm angezeigt werden. Ich habe auch versucht, den Kreis als Overlay zu zeichnen, aber der Kreis ist nicht transparent. Ich denke, ich liege falsch oder habe etwas im folgenden Code verpasst?

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

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