// opencv_learning.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
// 函数定义声明
bool ROI_Image();
bool Linear_Image();
bool ROI2_Image();
// on_Trackbar(int,int,Mat,Mat);
int main()
{
system("color 5E");
if (ROI2_Image() && Linear_Image() && ROI_Image()) {
printf("图片正在输出!");
}
waitKey();
return 0;
}
bool Linear_Image() {
double g_dAlphaValue = 0.4;
double betaValue;
Mat dstImage;
//读取图像 ( 两幅图片需为同样的类型和尺寸 )
Mat g_srcImage1 = imread("E:\\pictures\\For_Project\\New_opencv\\mogu.jpg");
Mat g_srcImage2 = imread("E:\\pictures\\For_Project\\New_opencv\\rain.jpg");
// beta值为1-alpha
double g_dbetaValue = (1.0 - g_dAlphaValue);
Mat g_dstImage;
// alpha和beta进行线性混合
addWeighted(g_srcImage1, g_dAlphaValue, g_srcImage2, g_dbetaValue, 0.0, g_dstImage);
// 显示效果
namedWindow("<2>线性变换实现窗口示例", 1);
imshow("<2>现象变换效果图", g_dstImage);
return true;
}
bool ROI_Image() {
//读入图像
Mat srcImage1 = imread("E:\\pictures\\For_Project\\New_opencv\\Sceen\\yj.jpg");
Mat logoImage = imread("E:\\pictures\\For_Project\\New_opencv\\logo1.jpg");
//定义一个Mat类型并给其设定ROI区域
Mat imageROI = srcImage1(Rect(0, 0, logoImage.cols, logoImage.rows));
//加载掩模(必须是灰度图)
Mat mask = imread("E:\\pictures\\For_Project\\New_opencv\\logo1.jpg", 0);
//将掩膜拷贝到ROI
logoImage.copyTo(imageROI, mask);
//显示结果
namedWindow("<1>ROI实现图像叠加示例窗口",CV_WINDOW_AUTOSIZE);
imshow("<1>利用ROI实现图像叠加示例窗口", srcImage1);
return true;
}
bool ROI2_Image() {
//读入图像
Mat srcImage5 = imread("E:\\pictures\\For_Project\\New_opencv\\Sceen\\yj.jpg");
Mat logoImage1 = imread("E:\\pictures\\For_Project\\New_opencv\\logo1.jpg");
//定义一个Mat类型并给其设定ROI区域
Mat imageROI1 = srcImage5(Rect(0,0,logoImage1.cols,logoImage1.rows));
//加载掩模(必须是灰度图)
// Mat mask = imread("E:\\pictures\\For_Project\\New_opencv\\logo1.jpg", 0);
addWeighted(imageROI1, 0.5, logoImage1, 0.3, 0.,imageROI1);
//显示结果
namedWindow("<3>ROI实现图像叠加虚拟示例窗口", CV_WINDOW_AUTOSIZE);
imshow("<3>利用ROI实现图像叠加虚拟示例窗口", srcImage5);
return true;
}
效果图: