c_cpp 研究opencv3 3.2.1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 研究opencv3 3.2.1相关的知识,希望对你有一定的参考价值。

#include <opencv2./opencv.hpp>
#include "opencv2/highgui/highgui.hpp"

using namespace std;
using namespace cv;


#define WINDOW_NAME "【线性混合示例】" //为窗口标题定义的宏
const int g_nMaxAlphaValue = 100;  //Alpha 值的最大值
int g_nAlphaValueSlider; //滑动条对应的变量
double g_dAlphaValue;
double g_dBetaValue;

//声明存储图片的变量
Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;

void on_Trackbar(int, void*)
{
	//求出当前alpha 值相对于最大值的比例
	g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
	//则 beta值为1减去alpha 值
	g_dBetaValue = (1.0 - g_dAlphaValue);

	//根据alpha和beta值进行线性混合
	addWeighted(g_srcImage1, g_dAlphaValue, g_srcImage2, g_dBetaValue, 0.0, g_dstImage);

	//显示效果图
	imshow(WINDOW_NAME, g_dstImage);
}


int main(int argc, char** argv)
{
	//加载图像(两图像的尺寸需相同)
	g_srcImage1 = imread("1.jpg");
	g_srcImage2 = imread("2.jpg");

	if (!g_srcImage1.data) 
	{
		printf("读取第1张图片错误,请确认目录下是否有imread函数指定图片存在! \n");
		return -1;
	}

	if (!g_srcImage2.data)
	{
		printf("读取第2张图片错误,请确认目录下是否有imread函数指定图片存在! \n");
		return -1;
	}

	//设置滑动条初始值 70
	g_nAlphaValueSlider = 70;

	//创建窗口
	namedWindow(WINDOW_NAME, 1);

	//在创建的窗口中创建一个滚动条空间
	char TrackbarName[60];

	sprintf_s(TrackbarName,"透明值 %d",g_nMaxAlphaValue);

	createTrackbar(TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar);

	on_Trackbar(g_nAlphaValueSlider, 0 );

	//按任意键退出
	waitKey(0);
	return 0;


}


以上是关于c_cpp 研究opencv3 3.2.1的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 研究opencv3 4.3

c_cpp 研究opencv3 3.3

c_cpp 研究opencv3 1.6

c_cpp 研究opencv3 2.6.2

Ubuntu14.04安装opencv3.1和opencv3.3

OpenCV3.1.0+VS2015开发环境配置