当前位置: 首页 > article >正文

【opencv入门教程】12. 矩阵初始化

文章选自:
请添加图片描述

一、 数据类型

建立矩阵必须要指定矩阵存储的数据类型,图像处理中常用的几种数据类型如下:包括数据位深度8位、32位,数据类型U:uchar、F:float型以及通道数C1:单通道、C3:三通道、C4:四通道。
我们可以通过载入图像来创建Mat类型矩阵

二、测试程序

void Samples::CreateMatrix()
{
  //step1. 创建矩阵
  cv::Mat a(cv::Size(3, 3), CV_8UC1); //创建单通道ucahr类型
  cv::Mat b(cv::Size(3, 3), CV_32F);  //创建Float类型
  cv::Mat c = cv::Mat(cv::Size(3, 3), CV_8UC3); //3通道每个矩阵元素包含3个uchar值
  cv::Mat d = cv::Mat(cv::Size(3, 3), CV_8UC4);//4通道每个矩阵元素包含3个uchar值
  cout << "step1. 创建矩阵" << endl;
  cout << "a  = " << endl << a << endl << endl;
  cout << "b  = " << endl << b << endl << endl;
  cout << "c  = " << endl << c << endl << endl;
  cout << "d  = " << endl << d << endl << endl;

  //step2. 初始化矩阵
  cv::Mat mz = cv::Mat::zeros(cv::Size(3, 3), CV_8UC1); // 全零矩阵
  cv::Mat mo = cv::Mat::ones(cv::Size(3, 3), CV_8UC1);  // 全1矩阵
  cv::Mat me = cv::Mat::eye(cv::Size(3, 3), CV_32FC1);  // 对角线为1的对角矩阵

  cout << "step2. 初始化矩阵" << endl;
  cout << "mz = " << endl << mz << endl << endl;
  cout << "mo = " << endl << mo << endl << endl;
  cout << "me = " << endl << me << endl << endl;
}

三、测试结果

在这里插入图片描述


http://www.kler.cn/a/427532.html

相关文章:

  • mac电脑多个ssh keys共存
  • Linux内核中断机制详解
  • stable diffusion Controlnet常用控制类型解析与实战课程 3
  • 基于java+SpringBoot+Vue的社团管理系统设计与实现
  • Codeforces Round 991 (Div. 3)(A~F)
  • 网络练级宝典-> UDP传输层协议
  • 【蓝桥杯每日一题】砍竹子
  • python怎么打印心形
  • cmake: error while loading shared libraries: libssl.so.1.1
  • JVM 性能调优以实现高吞吐量和低延迟(内附相对较优调优参数)
  • Dashboard-Factory没图没真相的虚假BI
  • Elasticsearch Serverless 现已正式发布
  • macOS sequoia 15.1中应用程序“程序坞”没有权限打开
  • C++ String(字符串)和 float/double (浮点数)互转
  • Photohop关于数位板没有压力感,PS画笔的钢笔压力总是显示感叹号的问题解放方法
  • 嵌入式硬件设计 — 智能设备背后的隐形架构大师
  • redis实现基础分布式锁,自动续期,可重入分布式锁
  • 获取小数的整数和小数部分
  • 函数与模块
  • SQL高级应用——索引与视图