OpenCV要点总结——第三章 HighGUI图形用户界面初步

1.图像的载入、显示、和输出到文件

(1)Mat类:用于保存图像以及其他矩阵数据的数据结构。

(2)图像的载入:

Mat image=imread("图片名",flags)

flags>0 返回3通道彩色图像(一般为1);flags=0 返回灰度图像;flags<0返回Alpha通道的加载图像。

(3)图像的显示:

Mat girl=imread("girl.jpg"); //载入图像到Mat
namedWindow("【1】动漫图"); //创建一个名为 "【1】动漫图"的窗口  
imshow("【1】动漫图",girl);//显示名为 "【1】动漫图"的窗口  

(4)图像输出到文件

imwrite("由imwrite生成的图片.jpg",image);

(5)演示程序及分析

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;


int main( )
{
//载入图片
	Mat image= imread("dota.jpg",1);//一般为1
	Mat logo= imread("dota_logo.jpg");

	//载入后先显示
	namedWindow("【2】原画图");
	imshow("【2】原画图",image);

	namedWindow("【3】logo图");
	imshow("【3】logo图",logo);

	// 定义一个Mat类型,用于存放,图像的ROI
	Mat imageROI;
	//方法一
	imageROI= image(Rect(800,300,logo.cols,logo.rows));//logo左上角坐标,宽,高
	//方法二
	//imageROI= image(Range(350,350+logo.rows),Range(800,800+logo.cols));

	// 将logo加到原图上
	addWeighted(imageROI,0.5,logo,0.3,0.,imageROI);

	//显示结果
	namedWindow("【4】原画+logo图");
	imshow("【4】原画+logo图",image);
imwrite("由imwrite生成的图片.jpg",image);

	waitKey();

	return 0;
}

(6)演示结果

2.滑动条创建及使用

char TrackbarName[50];
sprintf( TrackbarName, "透明值 %d", g_nMaxAlphaValue );//滑动条名称

createTrackbar( TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar );
//滑动条名称,依附窗口名称,当前值,最大值,调用函数
//结果在回调函数中显示
on_Trackbar( g_nAlphaValueSlider, 0 );

note:namedWindow("名称",flags)

flags=0 自适应大小 ;flags=1 固定大小

其回调函数

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 );
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值