Mesclando duas imagens mostrando brilho

Estou tentando misturar duas imagens ou você pode colocar uma imagem em outra imagem, quando aplico sobreposição de mesclagem na imagem ou mesclo simples duas imagens que me mostra brilho nela.

aqui estão minhas duas imagens (a primeira vinheta está vazia por dentro, não contém brilho no centro)

e o outro é

O código que eu fiz é

int main( int argc, char** argv )
{
    Mat img=imread("E:\\vig.png",-1); 
    Mat ch[4]; 
    split(img,ch);
    Mat im2 = ch[3];              // here's the vignette
    im2 = 255 - im2; // eventually cure the inversion
    Mat img2 = imread("E:\\ew.jpg");
    Mat out2;
    blending_overlay3(img2 , im2 , out2);
    imshow("image",out2);
    imwrite("E:\\image.jpg",out2);
    waitKey();}

Isso me mostra o resultado como

mas eu exijo resultado como

EDITAR

A primeira imagem é oca / vazia do centro (a vinheta), mas quando eu leio a imagem (vinheta uma) com o meu programa, ela fica sólida (brilhante) a partir do centro, a história por trás de sua implementação éaqui

Existe o único problema e é a primeira leitura da imagem (vinheta), se for lida como oca / vazia do centro, de modo que a outra imagem com a qual mesclamos / misturemos / ponderemos o que for aplicado não afetou a parte central da imagem, nem mostra brilho, etc, é isso que eu quero fazer

questionAnswers(1)

yourAnswerToTheQuestion