Zusammenführen von zwei Bildern mit Helligkeit

Ich versuche, zwei Bilder zu mischen, oder Sie können sagen, dass Sie ein Bild auf ein anderes Bild legen, wenn ich eine Überlagerung auf das Bild auftrage oder einfach zwei Bilder zusammenfasse, zeigt dies die Helligkeit darin an.

Hier sind meine beiden Bilder (die erste Vignette ist von innen leer, in der Mitte befindet sich keine Helligkeit)

und der andere ist

Der Code, den ich tat, ist

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

Es zeigt mir das Ergebnis wie

aber ich brauche ergebnis wie

BEARBEITEN

Das erste Bild ist von der Mitte aus hohl / leer (die Vignette 1), aber wenn ich das Bild (die Vignette 1) mit meinem Programm lese, wird es von der Mitte aus durchgehend (hell), und die Geschichte hinter seiner Implementierung istHier

Es gibt das einzige Problem und sein mit erstem (Vignetten-) Bildlesen, wenn es liest, wie hohl / leer von der Mitte, so dass das andere Bild, mit dem wir verschmelzen / mischen / gewichten, was auch immer angewendet wird, es nicht bewirkte der mittlere Teil des Bildes, nicht einmal Helligkeit usw. zeigen, das ist, was ich tun möchte

Antworten auf die Frage(1)

Ihre Antwort auf die Frage