OpenCV的滑动条使用

现在做的事情就是把以前的一些小东西放到博客上来,也是相当于把自己以前的笔记再温故一遍,很多代码都是拷贝别人的,但是现在有点忘记他们的博客地址,如果哪一天有朋友知道了他们的出处,请留言或者私信我一声,即便是小代码,我们也应当尊重版权,学了一年,闭起双眼,仍然只是觉得很多代码很熟悉,而不能达到牢记于心的境界,有待提高,加油吧!少年

大晚上的,如果看代码看累了,不妨玩会儿游戏,然后小憩一会儿微笑(我喜欢玩崩坏3)


好的,继续今天的代码,创建滑动条控制两幅图像的叠加权值

话不多说,该有的解释放在代码上就好了

我用的两张图片,依然是用实验室液晶透镜采集的老虎 恐龙模型

后面你会慢慢发现,我所用到的图片似乎都有那么一丝立体感

前对焦:


后对焦:


完整工程代码

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

#define WINDOW_NAME "Mixed Images"

// global variables
const int g_nMaxAlphaValue = 50; // maximun alpha value
int g_nAlphaValueSlider; // value from trackbar
double g_dAlphaValue;
double g_dBetaValue;

// Mat objects for images
cv::Mat g_srcImage1;
cv::Mat g_srcImage2;
cv::Mat g_dstImage;

// on trackbar
void on_Trackbar( int, void* )
{
	g_dAlphaValue = (double) g_nAlphaValueSlider/g_nMaxAlphaValue;
	g_dBetaValue = (1.0-g_dAlphaValue);

	addWeighted(g_srcImage1, g_dAlphaValue, g_srcImage2, g_dBetaValue, 0.0, g_dstImage);

	cv::imshow(WINDOW_NAME, g_dstImage);
}

// main
int main( int argc, char** argv )
{
	// load image and show
	g_srcImage1 = cv::imread("near.jpg");
	g_srcImage2 = cv::imread("far.jpg");
	// NOTE: two image should be the same size
	if(!g_srcImage1.data)
	{
		printf("Error getting the first images. Put the image wuliEddie1.jpeg to Debug folder. \n");
		return -1;
	}
	if(!g_srcImage1.data)
	{
		printf("Error getting the second images. Put the image wuliShishi1.jpeg to Debug folder. \n");
		return -1;
	}

	// initialize trackbar value
	g_nAlphaValueSlider = 48;

	// create window
	cv::namedWindow(WINDOW_NAME, 1);

	// create trackbar
	char TrackbarName[50];
	sprintf( TrackbarName, "Alpha Value %d", g_nMaxAlphaValue );

	cv::createTrackbar( TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar );
	/*第一个参数滑动条的名称
	 *第二个参数窗口的名称
	 *第三个参数为获取滑动条当前位置的值
	 *第四个参数为滑动条的最大值
	 *第五个参数为滑动条的回调函数,主要功能都在回调函数中实现
	*/

	// to show the initial image
	on_Trackbar(g_nAlphaValueSlider, 0);

	cv::waitKey(0);
	return 0;
}


最后结果:





话不多数,实在是没啥好说的,很简单的一个东西

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值