opencv载入,显示及保存图像
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);
文件的后缀名决定了图像保存时的编码格式。
opencv载入,显示及保存图像的更多相关文章
- openCV—Python(2)—— 载入、显示和保存图像
一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg& ...
- 利用python进行简单的图像处理:包括打开,显示以及保存图像
利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...
- matlab数字图像处理-冈萨雷斯-读取,显示,保存图像
图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比
- Opencv怎么读入,显示,保存图像-OpenCV步步精深
怎么读入图像呢? 我们用 img = cv2.imread('图像路径\原图像名称',0) 原图像名称要有后缀 .png , .jpg等等原图像带有的后缀. 这里我们着重说明一下图像路径,这个路径一定 ...
- opencv 加载 修改 保存 图像
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; /* 1 加载图像 cv::imre ...
- [OpenCV笔记]0.OpenCV中显示多张图像
摘要 本文主要介绍OpenCV中同时显示多张IplImage图像的方法(C++形式的多图显示需要修改,用vector<Mat>可能比较方便),有点类似MATLAB中的subplot,只是暂 ...
- OpenCV Python教程(1、图像的载入、显示和保存)
原文地址:http://blog.csdn.net/sunny2038/article/details/9057415 转载请详细注明原作者及出处,谢谢! 本文是OpenCV 2 Computer ...
- OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图
图像载入.显示.保存函数: 1 图像载入函数:imread() Mat imread(const string& filename, int flags=1); const ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
随机推荐
- 更改Magento的base url
Magento的Base URL是用于访问商店页面的URL,您也可以为单独一个store view设置一个Base Url.在改这项值之前请确保您的域名已经指向了网站所在服务器的IP,DNS解析完成后 ...
- JavaScript实现在文本框中输入空格时自动填写某个值
<script language="javascript" type="text/javascript"> var txtText4 = " ...
- 【转】Android各种Adapter的用法
转自:http://my.oschina.net/u/658933/blog/372151 Android各种Adapter的用法 发表于5个月前(2015-01-27 10:56) 阅读(143 ...
- iOS开发中(null)与<null>的判断
判断(null): if(m_result==nil) { NSLog(@"KDA!"); } 判断<null>: if([m_result isEqual: ...
- robot framework数据库操作
1.连接数据库 2.数据库查询操作 3.断开数据库连接 4.对数据库进行读取,实现登录功能实例
- 安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件
安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件 http://pcedu.pconline.com.cn/teach/xt/1201/2657834_8 ...
- 改变DataGrid某一行和单元格的颜色
前段时间做WPF项目,需要改变DataGrid某一行的颜色.高度,以及某个单元格的颜色.单元格字体的颜色,自然就必需取到datagrid的一行和一行的单元格,网上也是搜索了好久才找到,记录下来便于使用 ...
- shell脚本调试技术_转
转自:http://itlab.idcquan.com/linux/SHELL/727128.html 参考:https://linux.cn/article-8045-1.html 本文全面系统地介 ...
- Silverlight/WPF绘制统计图Visifire.dll文件
官网:http://www.visifire.com/ 一直没找到好的中文文档,希望有的这个的可以发个我! 效果图: 前台代码: <UserControl x:Class="Text_ ...
- 【未解决】CImage::Save / Load 导致“线程 0xc224 已退出,返回值为 1 (0x1)”
不知道这个返回值意味着什么,反正只要用到Save/Load就会出现这个情况. 这个链接:http://forums.codeguru.com/showthread.php?354017-The-thr ...