ROI感兴趣区域opencv初级变换学习

// 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;

}

效果图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值