//----------------------------------【ROI_AddImage( )函数】---------------------------------- // 函数名:ROI_AddImage() // 描述:利用感兴趣区域ROI实现图像叠加 //通过copyto方式,显示内嵌的图片。s //---------------------------------------------------------------------------------------------- void OpenCV_Function:: ROI_AddImage(){ //【1】读入图像 cv::Mat srcImage1= cv::imread("dota.jpg"); cv::Mat logoImage= cv::imread("dota_logo.jpg"); if(!srcImage1.data ) { printf("你妹,读取srcImage1错误~! \n"); return ; } if(!logoImage.data ) { printf("你妹,读取logoImage错误~! \n"); return ; } //【2】定义一个Mat类型并给其设定ROI区域 cv::Mat imageROI= srcImage1(cv::Rect(800,350,logoImage.cols,logoImage.rows)); //【3】加载掩模(必须是灰度图) cv::Mat mask= cv::imread("dota_logo.jpg",1); //【4】将掩膜拷贝到ROI logoImage.copyTo(imageROI,mask); //【5】显示结果 cv::namedWindow("<1>利用ROI实现图像叠加示例窗口"); cv::imshow("<1>利用ROI实现图像叠加示例窗口",srcImage1); }
//----------------------------------【ROI_AddImage( )函数】---------------------------------- // 函数名:ROI_AddImage() // 描述:利用感兴趣区域ROI实现图像叠加 //---------------------------------------------------------------------------------------------- //----------------------------------【ROI_AddImage( )函数】---------------------------------- // 函数名:ROI_AddImage() // 描述:利用感兴趣区域ROI实现图像叠加 //---------------------------------------------------------------------------------------------- bool ROI_AddImage() { //【1】读入图像 Mat srcImage1= imread("D:\\opecvimg\\dota_pa.jpg"); Mat logoImage= imread("D:\\opecvimg\\dota_logo.jpg"); 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("D:\\opecvimg\\dota_logo.jpg",0); //【4】将掩膜拷贝到ROI logoImage.copyTo(imageROI,mask); //【5】显示结果 namedWindow("<1>利用ROI实现图像叠加示例窗口"); imshow("<1>利用ROI实现图像叠加示例窗口",srcImage1); return true; }