opencv-初级图像混合
来源:互联网 发布:群硕软件招聘 编辑:程序博客网 时间:2024/06/04 19:59
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace cv;using namespace std;//-----------------------------------【全局函数声明部分】--------------------------------------//描述:全局函数声明//-----------------------------------------------------------------------------------------------bool ROI_AddImage();bool LinearBlending();bool ROI_LinearBlending();void ShowHelpText();//-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数,我们的程序从这里开始//-----------------------------------------------------------------------------------------------int main( ){system("color 6F"); ShowHelpText();if(ROI_AddImage( )&& LinearBlending( )&&ROI_LinearBlending( )){cout<<endl<<"\n运行成功,得出了需要的图像~! ";}waitKey(0);return 0;}//-----------------------------------【ShowHelpText( )函数】----------------------------------// 描述:输出一些帮助信息//----------------------------------------------------------------------------------------------void ShowHelpText(){//输出欢迎信息和OpenCV版本printf("\n\n\t\t\t非常感谢购买《OpenCV3编程入门》一书!\n");printf("\n\n\t\t\t此为本书OpenCV2版的第25个配套示例程序\n");printf("\n\n\t\t\t 当前使用的OpenCV版本为:" CV_VERSION );printf("\n\n ----------------------------------------------------------------------------\n");}//----------------------------------【ROI_AddImage( )函数】----------------------------------// 函数名:ROI_AddImage()//描述:利用感兴趣区域ROI实现图像叠加//----------------------------------------------------------------------------------------------bool ROI_AddImage(){// 【1】读入图像Mat srcImage1= imread("dota_pa.jpg");Mat logoImage= imread("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("dota_logo.jpg",0);//【4】将掩膜拷贝到ROIlogoImage.copyTo(imageROI,mask);// 【5】显示结果namedWindow("<1>利用ROI实现图像叠加示例窗口");imshow("<1>利用ROI实现图像叠加示例窗口",srcImage1);return true;}//---------------------------------【LinearBlending()函数】-------------------------------------// 函数名:LinearBlending()// 描述:利用cv::addWeighted()函数实现图像线性混合//--------------------------------------------------------------------------------------------bool LinearBlending(){//【0】定义一些局部变量double alphaValue = 0.5; double betaValue;Mat srcImage2, srcImage3, dstImage;// 【1】读取图像 ( 两幅图片需为同样的类型和尺寸 )srcImage2 = imread("mogu.jpg");srcImage3 = imread("rain.jpg");if( !srcImage2.data ) { printf("读取srcImage2错误! \n"); return false; }if( !srcImage3.data ) { printf("读取srcImage3错误! \n"); return false; }// 【2】进行图像混合加权操作betaValue = ( 1.0 - alphaValue );addWeighted( srcImage2, alphaValue, srcImage3, betaValue, 0.0, dstImage);// 【3】显示原图窗口imshow( "<2>线性混合示例窗口【原图】", srcImage2 );imshow( "<3>线性混合示例窗口【效果图】", dstImage );return true;}//---------------------------------【ROI_LinearBlending()】-------------------------------------// 函数名:ROI_LinearBlending()// 描述:线性混合实现函数,指定区域线性图像混合.利用cv::addWeighted()函数结合定义// 感兴趣区域ROI,实现自定义区域的线性混合//--------------------------------------------------------------------------------------------bool ROI_LinearBlending(){//【1】读取图像Mat srcImage4= imread("dota_pa.jpg",1);Mat logoImage= imread("dota_logo.jpg");if( !srcImage4.data ) { printf("读取srcImage4错误~! \n"); return false; }if( !logoImage.data ) { printf("读取logoImage错误~! \n"); return false; }//【2】定义一个Mat类型并给其设定ROI区域Mat imageROI;//方法一imageROI= srcImage4(Rect(200,250,logoImage.cols,logoImage.rows));//方法二//imageROI= srcImage4(Range(250,250+logoImage.rows),Range(200,200+logoImage.cols));//【3】将logo加到原图上addWeighted(imageROI,0.5,logoImage,0.3,0.,imageROI);//【4】显示结果imshow("<4>区域线性图像混合示例窗口",srcImage4);return true;}
效果图:
http://lib.csdn.net/base/opencv
0 0
- OpenCV 初级图像混合
- Opencv初级图像混合
- opencv-初级图像混合
- 初级图像混合OPENCV
- Opencv ---- ROI区域图像叠加 & 初级图像混合
- OpenCV之四 ROI区域图像叠加&初级图像混合
- OpenCV 图像的载入,显示,初级图像混合与输出
- OpenCV ROI区域图像叠加&初级图像混合
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- web前端-boostrap图片轮播
- strstr函数
- php 生成pdf
- 单点搭建HADOOP系统
- Ubuntu软件包的安装
- opencv-初级图像混合
- 机器学习——朴素贝叶斯法(naive Bayes)
- android 打开热点
- 如何阅读一本书 全书笔记
- 微信公众号开发
- js高程(引用类型)
- 第五章 初始化与清理
- Pig安装及本地模式测试,体验
- ssh的简单配置