1图像简单显示与保存

转载 2018年04月15日 09:50:06

参考1图像简单显示与保存,做自己的笔记

Mat类简单介绍

Mat类可以用来保存图像以及其他矩阵数据的数据结构,默认情况下其尺寸为0。更详细的将会在以后的文章中继续介绍。

读入图像:imread()函数

Mat imread( const String& filename, int flags = IMREAD_COLOR );

第一个参数:放入打算读入的图像的路径。

这里有三点要值得注意的地方,①要用” ”双引号(英文下)将路径括起来。②路径见要用两个斜线\\分割。③要记得图像格式别忘记写。


上图中,第一种写法,即图像在当前项目文件夹中;

其中这个路径:

cv::Mat cv::imread(
    const &string filename,
    int flags=1)
//文件在当前目录下
Mat img=imread("test.jpg");
//不在当前目录
//使用双反斜杠
img=imread("folder\\folder2\\test.jpg");
img=imread("c:\\images\\test.jpg");
//或使用单斜杠
img=imread("folder/folder2/test.jpg");
img=imread("c:/images/test.jpg");
双反斜杠和单斜杠都是合法的

第二张为:自定义图像的路径。

第二个参数:默认值是1,表示的是载入三通道彩色图像。

Mat imread( const String& filename, int flags )
{
    /// create the basic container
    Mat img;

    /// load the data
    imread_( filename, flags, LOAD_MAT, &img );

    /// return a reference to the data
    return img;
}

显示图像:imshow()函数

void imshow(const String& winname, InputArray mat);
第一个参数:显示窗口名称。
第二个参数:将要显示的图像的名称。
Mat img = imread("D:\\demo01.jpg");
imshow("pp的靓照", img);

保存图像:imwrite()函数

bool imwrite( const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>());
第一个参数:将要另保存图像的名称,可以自己定义名称。
第二个参数:你要要保存的图像名称,是目前已经存在的图像。
第三个参数:来设置对于图像格式的参数,一般省略,不写。
具体代码:
bool imwrite( const String& filename, InputArray _img,
              const std::vector<int>& params )
{
    Mat img = _img.getMat();
    return imwrite_(filename, img, params, false);
}
//=============================================
//功能:图像显示与保存
//2018年4月15日9:19:39
//=============================================

#include <iostream>
#include <opencv2\opencv.hpp>
using namespace std;
using namespace cv;

int main()
{
	//【1】读取原始图像
	Mat srcImage;
	//srcImage = imread("demo01.jpg", IMREAD_COLOR);//第一个参数为要读入的图像;第二个参数默认值为1,即IMREAD_COLOR,这个参数可以省略不写;
	srcImage = imread("demo01.jpg");
	//【2】检查是否读取图像成功
	if (srcImage.empty())
	{
		cout << "读取图像有误,请重新输入正确路径!\n";
		return -1;
	}
	//【3】创建具有图像名称的窗口
	namedWindow("原始图", WINDOW_AUTOSIZE);
	//【4】在窗口中显示图片
	imshow("原始图", srcImage);
	//【5】保存图像
	imwrite("保存的图像.jpg", srcImage);
	//【6】保持等待状态
	waitKey();//括号里可以填任意正整数,意味着,图像显示的毫秒时间
	return 0;
}

注意:

还是老话题,2.2版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括:

core——定义了基本数据结构,包括最重要的Mat和一些其他的模块

imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等

video——该模块包括运动估计,背景分离,对象跟踪

calib3d——基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建

features2d——显著特征检测,描述,特征匹配

objdetect——物体检测和预定义好的分类器实例(比如人脸,眼睛,面部,人,车辆等等)

highgui——视频捕捉、图像和视频的编码解码、图形交互界面的接口

gpu——利用GPU对OpenCV模块进行加速算法

ml——机器学习模块(SVM,决策树,Boosting等等)

flann——Fast Library for Approximate Nearest Neighbors(FLANN)算法库

legacy——一些已经废弃的代码库,保留下来作为向下兼容

还有一些其他的模块,比如FLANN算法库、Google测试包、Python bingdings等等。


【拜小白opencv】1图像简单显示与保存

1图像简单显示与保存, VS2017+OpenCV-3.2.0+Win10-64bit
  • sinat_36264666
  • sinat_36264666
  • 2017-07-05 12:40:48
  • 2537

OpenCV图像操作

  • 2012年02月10日 13:54
  • 5.7MB
  • 下载

装箱检测小软件,粗略的检测箱子内是否缺瓶

  • 2010年04月22日 15:35
  • 4.13MB
  • 下载

图像显示和保存的VC++6.0源码

  • 2011年04月20日 16:39
  • 1.8MB
  • 下载

用python简单处理图像(1):打开/显示/保存图像

用python简单处理图像(1):打开/显示/保存图像 使用python进行数字图片处理,需要安装Pillow包。虽然python里面自带一个PIL(python images li...
  • gufeng_1992
  • gufeng_1992
  • 2017-05-31 20:08:09
  • 210

opencv 图像的读取显示和保存

opencv图像处理系统组成(个人见解) 图像获取:本地加载图片(jpg,bmp,png) : 相机获取图像Frame Byte :...
  • xujaiwei
  • xujaiwei
  • 2017-05-31 21:25:29
  • 1122

第一天 图像的显示、保存

读入一张图像并颜色取反,使用两个窗口显示,最后保存。 I=imread('lv.jpg'); J=255-I;  %颜色取反 figure(1),imshow(I),title('原始图像'),...
  • jialeheyeshu
  • jialeheyeshu
  • 2015-10-11 17:22:28
  • 254

图像的载入,显示和保存

载入: 首先要声明一个表示图像的变量
  • shixiangyun2
  • shixiangyun2
  • 2014-07-06 16:33:07
  • 416

GDI+(图像的显示和保存)

题目要求:   编写一个window应用程序,分别利用Bitmap类和PictureBox控件实现显示,保存图像的功能。  输入代码: using System; using Syste...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2016-06-11 11:15:45
  • 1098

图像的读取,显示与保存

图像的读取,显示与保存
  • qq_34838643
  • qq_34838643
  • 2017-04-20 13:07:16
  • 354
收藏助手
不良信息举报
您举报文章:1图像简单显示与保存
举报原因:
原因补充:

(最多只允许输入30个字)