您的位置:首页 > 运维架构

OpenCV2中图像读取、显示、保存等基本操作

2015-11-28 21:44 309 查看
之前看《学习OpenCV》这本书,一直在用IplImage,但是我自己安装的是OpenCV2的,因此,在学这本书的时候,结合自己用的时候会出现很多的疑惑,知道现在才搞清楚,原来这本书是基于OpenCV1的........不过幸好发现的早,今天主要学习了OpenCV2中队图像的基本操作,如图像的载入,图像的显示以及保存等基本操作,确实感觉比OpenCV1方便很多,贴上今天的敲的代码。

/*****************************************************
**		第二讲 图像读取、显示、保存等基本操作
*****************************************************/

#include "cv.h"
#include "highgui.h"
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char * argv[])
{
Mat image;		//定义一个图像对象
image = imread("G:/Learning/Machine_version/Photo/test.jpg");	//读取图像

if (!image.data)		//判断图像载入是否成功
{
cout << "Fail to load image!!" << endl;
system("pause");
return 0;
}

Mat src1;
image.copyTo(src1);		//将图像image深拷贝到src1中
flip(src1, src1, 1);	//对图像进行翻转
namedWindow("src1");	//创建窗口src1
imshow("src1", src1);	//在窗口src1中显示翻转后的图像

namedWindow("my");		//创建窗口My
imshow("my", image);	//在窗口my中显示image图像
int key=waitKey(0);		//等待按键的输入

imwrite("my.jpg", image);	//	将image图像保存为my.jpg

cout << "Size of image is: " << image.size().height << ", " //获得图像的高,宽等尺寸
<< image.size().width << endl;
cout << "ASCII of the key is: " << key << endl;

/******************自己定义图像对象***********************/
//Mat image(200, 100, CV_8UC1, Scalar(100));
//Mat src;
//src = image;	//浅拷贝,src和image共用同一片内存
////image.copyTo(src);//深拷贝,各自占用一块内存区域,对src的操作不会影响image

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: