计算机视觉 实验一 图像的载入、显示与输出(附opencv代码)

一、实验目的和要求

  (一)通过实验掌握 Windows 中安装 OpenCV 的方法;
  (二)通过实验掌握图像的载入、显示与输出的方法

二、实验内容

  (一)Windows中安装OpenCV;
  (二)编写图像的载入、显示与输出的程序.

三、实验仪器、设备

  计算机一台,已安装 Windows 7 操作系统和 Visual Studio 2015

四、实验原理

  Opencv用 Mat类来实现图像的存储。图像存储在矩阵格式中,每个像素都有个位置,可以通过列数和行数引用。Mat类不只用于存储图像,而且还可以存储任意大小的不同类型的矩阵。可以使用Mat类执行矩阵加法、矩阵乘法、创建矩阵等操作。imread函数用于读取图像。imwrite函数用于写图像。imshow函数用于显示图像。

五、实验步骤

  (一)Windows中安装OpenCV
  在网址https://sourceforge.net/projects/opencvlibrary/中下载opencv源代码,在Windows中安装OpenCV;。
  (二)在Visual Studio 2015中配置OpenCV;
  (三)编写代码,使用imread函数读取图像;
  (四)编写代码,使用imwrite函数写图像;
  (五)编写代码,使用imshow函数显示图像。

六、实验注意事项

  (一)完成OpenCV安装之后,VS中配置OpenCV的方法;
  (二)imread、imwrite、imshow函数的功能和使用方法。

七、实验结果

  (一)实验代码

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


int main( )
{
	//-------------------------------【一、图像的载入和显示】----------------------------
	//	描述:以下三行代码用于完成图像的载入和显示
	//---------------------------------------------------------------------------------
	
	cv::Mat girl = cv::imread("girl.jpg", 0); //载入图像到Mat
	namedWindow("【1】动漫图"); //创建一个名为 "【1】e动漫图"的窗口  
	imshow("【1】动漫图",girl);//显示名为 "【1】动漫图"的窗口  

	//-------------------------------【二、初级图像混合】---------------------------------
	//	描述:二、初级图像混合
	//---------------------------------------------------------------------------------
	//载入图片
	Mat image = imread("dota.jpg");
	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,350,logo.cols,logo.rows));
	//方法二
	//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);

	//--------------------------------【三、图像的输出】----------------------------------
	//	描述:将一个Mat图像输出到图像文件
	//---------------------------------------------------------------------------------
	//输出一张jpg图片到工程目录下
	imwrite("由imwrite生成的图片.jpg", image);
	//imwrite("由imwrite生成的图片.jpg", image);

	waitKey(0);

	return 0;
}

  (二)显示结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、实验总结

  本次实验的主要内容是编写图像的载入、显示与输出的程序。用到的函数主要有cv::Mat girl=cv::imread(“xx.jpg”, 0);(载入图像到Mat,第一个参数xx.jpg是图片名称,第二个参数0是灰度图);namedWindow(“窗口名称”); ;显示函数imshow(“窗口名称”,xx); ;载入图片函数Mat image= imread(“xx.jpg”); ;imageROI= image(Rect());;addWeighted();;imwrite(".jpg",image); ;等等函数。本次试验让我充分理解了上述的函数以及试验流程。学会了自己使用上述函数进行图片最基本的载入、显示与输入。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

return str=xi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值