• Mat 类简析


    前言

      最近开始接触opencv,做了个简单的入门,经过各种的安装和编译,也算是初出茅庐,感受到计算机视觉的强大。这里很开森自己又要开始永无止境的前进啦!今天就记录下Mat类的用法。

    一、

      Mat 类是一个用于保存图像数据或者矩阵数据的数据结构,可以说是一个矩阵类,在默认情况下其尺寸大小为0。当然也可以指定该对象的初始尺寸,例如:

    1 Mat image(50, 100, Scalar(100));

    其中前两个参数即为图像的长和宽,即50行,100列。Scalar即为像素点赋值,0即为全黑,255即为全白,其可以表示 4 元素向量,分别对应图像的 4 个通道,B、G、R、A,在 Opencv 中广泛用于传递像素值,是一种含 4 个 double 值的结构体类型:

    1 typedef struct Scalar
    2 {
    3     double val[4];
    4 }Scalar;

    当然一般默认的话就是默认显示原图。

    二、

      对图像进行操作分为载入、显示和输出。

      1、载入

    1 Mat imread(const string& filename, intflags = 1);  //原型
    2 Mat srcImage = imread("图片路径", 2 | 4);  //载入无损的原图像
    3 Mat srcImage2 = imread("图像路径", 0);  //载入灰度图像
    4 Mat srcImage3 = imread("图像路径", 130);  //载入3通道的彩色图像

    这里第二个参数是载入标识,指定一个加载图像的颜色类型。

    》flags > 0 返回一个的彩色图像

    》flags = 0 返回一个的灰度图像

    》flags < 0 返回一个的包含alpha通道的加载图像

      2、显示

    1 void imshow(const string& winname, InputArray mat);

    》第一个参数:const string&类型的winname,显示窗口标题

    》第二个参数:需要显示的图像

      创建窗口函数

    1 void namedWindow(const string& winname, int falgs = WINDW_AUTOSISE);

    》第一个参数:const string&类型的winname,显示窗口标题名称

    》第二个参数:窗口标识

      3、输出到文件

    1 bool imread(const string& filename, InputArray img, const vector<int>& params = vector<int>());

    》第一个参数:const string&类型的filename,需要写入的文件名

    》第二个参数:Mat类型的图像数据

    》第三个参数:const vector<int>& 类型的一个 params,表示为特定格式保存的参数编码,一般保持默认就ok

    这些就是Mat类的图像载入、显示和输出方法。方便以后查阅。

  • 相关阅读:
    9.Vue技术栈开发实战-使用Mock模拟Ajax请求
    8.Vue技术栈开发实战-Ajax请求实战
    7.Vue技术栈开发实战-状态管理Vuex进阶
    6.Vue技术栈开发实战-状态管理Vuex(二)
    5.Vue技术栈开发实战-状态管理Vuex(一)
    4.Vue技术栈开发实战-状态管理bus的使用
    3.Vue技术栈开发实战-路由进阶篇
    2.Vue技术栈开发实战-路由基础篇
    Vue技术栈开发实战_汇总贴
    1.Vue技术栈开发实战-使用vue-cli3创建项目
  • 原文地址:https://www.cnblogs.com/shi-win-snoopy/p/12303494.html
Copyright © 2020-2023  润新知