logoImage.copyTo(imageROI,mask);

int main(int argc, char** argv)
    {
        double alpha, beta,input;
        std::cout<<"* Enter alpha [0-1]: ";
        std::cin>>input;
        if( input >= 0 && input <= 1 )
        { 
            alpha = input;
            beta= 1- alpha;
        }

        //【1】读入图像  
        Mat srcImage1= imread("lena.jpg");  
        Mat logoImage= imread("logo.png");  
        if(!srcImage1.data ) { printf("你妹,读取srcImage1错误~! \n"); return false; }  
        if(!logoImage.data ) { printf("你妹,读取logoImage错误~! \n"); return false; }  

        //【2】定义一个Mat类型并给其设定ROI区域  
        Mat imageROI= srcImage1(Rect(200,250,logoImage.cols,logoImage.rows));  

        //【3】加载掩模(必须是灰度图)  
        Mat mask= imread("logo_mask.png",0);  
        //
        //【4】将掩膜拷贝到ROI  
        logoImage.copyTo(imageROI,mask);  
        //addWeighted(imageROI, alpha, logoImage, beta, 0, imageROI);

        //【5】显示结果  
        namedWindow("<1>利用ROI实现图像叠加示例窗口");  
        imshow("<1>利用ROI实现图像叠加示例窗口",srcImage1);  
        waitKey(0);
        return 0;
    }

 

posted @ 2018-03-26 10:40  sky20080101  阅读(275)  评论(0)    收藏  举报