zoukankan      html  css  js  c++  java
  • 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类的图像载入、显示和输出方法。方便以后查阅。

  • 相关阅读:
    linux shell 获取文件夹全文绝对路径
    Selenium自动化获取WebSocket信息
    Automatically generating nice graphs at end of your Load Test with Apache JMeter and JMeter-Plugins
    卡夫卡与风暴:卡夫卡和风暴的明智比较
    Apache Kafka安全| Kafka的需求和组成部分
    Kafka Schema Registry | 学习Avro Schema
    QT 内部使用函数列表
    QT图标添加
    QT快捷键
    QT软件上架以及自启动
  • 原文地址:https://www.cnblogs.com/shi-win-snoopy/p/12303494.html
Copyright © 2011-2022 走看看