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

文章选自:

一、 数据类型

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

二、测试程序

cpp 复制代码
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;
}

三、测试结果

相关推荐
diemeng1119几秒前
AI前端开发技能变革时代:效率与创新的新范式
前端·人工智能
有Li4 分钟前
跨中心模型自适应牙齿分割|文献速递-医学影像人工智能进展
人工智能
牧歌悠悠5 小时前
【深度学习】Unet的基础介绍
人工智能·深度学习·u-net
坚毅不拔的柠檬柠檬5 小时前
AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
人工智能·chatgpt·文心一言
坚毅不拔的柠檬柠檬5 小时前
2025:人工智能重构人类文明的新纪元
人工智能·重构
jixunwulian5 小时前
DeepSeek赋能AI边缘计算网关,开启智能新时代!
人工智能·边缘计算
Archie_IT5 小时前
DeepSeek R1/V3满血版——在线体验与API调用
人工智能·深度学习·ai·自然语言处理
大数据追光猿6 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
灵感素材坊6 小时前
解锁音乐创作新技能:AI音乐网站的正确使用方式
人工智能·经验分享·音视频
xinxiyinhe7 小时前
如何设置Cursor中.cursorrules文件
人工智能·python