博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv载入,显示及保存图像
阅读量:5143 次
发布时间:2019-06-13

本文共 1350 字,大约阅读时间需要 4 分钟。

1、声明一个表示图像的变量,在OpenCV2中,这个变量是cv::Mat类型,该类是用于保存图像以及其他矩阵数据的数据结构。默认情况下它们的尺寸为0。

  cv::Mat  image;       //这句话将创建一个宽高都为0的图像;

通过调用cv::Mat 的size()方法可以获取该图像的尺寸,该方法的返回值是一个结构体,包含着宽度和高度;

std::cout<<"size:"<<image.size().height<<","<<image.size().width<<std::endl;

cv::Mat类是用于保存图像以及其他矩阵数据的数据结构。默认情况下它们的尺寸为0,但是也可以指定初始尺寸:

cv::Mat ima(240,320,CV_8U,cv::Scalar(100));

同时,你需要指定矩阵中元素的类型,这里的CV_8U对应的是单字节的像素图像。字母U意味着无符号的(Unsigned).也可以使用字母S声明带符号的(Signed)类型。对于彩色图像,需要指定3个通道(CV_8UC3)。也可以声明16位或32位的(无符号的或带符号的)整数图像,如CV_16SC3。也可声明32位或64位的浮点数,如CV_32F。

2、一个简单的读取函数将进行文件读取、解码以及内存的分配。

   image = cv::imread("img.jpg");

在使用该图像前需要先检查图像是否已经被正确读取,如果文件不存在、文件损坏或者格式无法识别,将会出现错误。检验方法如下:

if(!image.data){

   //图像尚未创建.......

}

此处的成员变量data事实上是指向已分配的内存块的指针,包括图像数据。当不存在数据时,它被简单设置为0.

3、显示图像,OpenCV的highgui模块实现了该功能。首先定义一个需要进行图像显示的窗口,接着指定需要显示的图像:

cv::namedWindow("Original Image");    //定义显示图像的窗口,参数为窗口名

cv::imshow("Original Image",image);    //显示图像

4、将图像水平反转。OpenCV中的多个图像变换可以在原地进行,即不创建新的图像,直接修改输入图像的内容。flip函数便是其中一种,然而,也可以创建另外一个矩阵来保存输出结果。

cv::Mat  result;

cv::flip(image,result,1);     //正数表示水平反转,0表示垂直反转,负数表示既有水平也有垂直反转

结果显示在另一个窗口中:

cv::namedWindow("Output Image");

cv::imshow("Output Image",result);

由于这是个控制台窗口,它会在main函数的结尾处终止,因此我们添加额外的highgui函数使得程序退出前不停等待用户的按键输入:

cv::waitKey(0);

5、将处理后的图像保存在磁盘上,通过下面的highgui函数得到实现:

cv::imwrite("output.bmp",result);

文件的后缀名决定了图像保存时的编码格式。

转载于:https://www.cnblogs.com/xuepei/p/4126328.html

你可能感兴趣的文章
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
MySQL-定时任务
查看>>
web页面实现指定区域打印功能
查看>>
使用PHP拆分中文字符串的方法(收藏) 小节
查看>>
android系统权限的管理
查看>>