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

opencv入门(4)图像创建和赋值

文章目录

  • 1. Mat基本结构
  • 2 创建图像
  • 3 克隆和拷贝
  • 4 Kernel


1. Mat基本结构

在这里插入图片描述
头部,作为图片的属性,单通道多通道,整形等都存储在头部,
如果只是赋值,不会创建新的Data Block,只有克隆(clone)和拷贝(copyTo)时,才会创建新的数据块

在这里插入图片描述

2 创建图像

Mat m3 = Mat::zeros(Size(8,8),CV_8UC1);
8UC1 = unsigned char 8位的无符号类型,1 表示单通道数据
在这里插入图片描述
打印出来就像这样,依次为 00,01,11…10,11,12…76,77

如果改成Mat m3 = Mat::zeros(Size(8,8),CV_8UC3);
表示每个数据有3个通道数,依旧是8行,但每个数据变成了3个,所以一排有3*8 = 24 个数据
在这里插入图片描述
在这里插入图片描述
打印出来 cols 是 8,高度是8,通道数是3

在这里插入图片描述
在这里插入图片描述
只有每个通道的第一个像素点才是1,如果通道是3,则会出现下列打印
在这里插入图片描述
可以给通道赋值

Mat m4 = Mat::ones(Size(8, 8), CV_8UC1);m4 = 127;

在这里插入图片描述
如果知道是几个通道的,则使用Scalar,给每个通道的值进行赋值
在这里插入图片描述

在这里插入图片描述

创建Size(512,512)的图像
在这里插入图片描述

在这里插入图片描述

Mat m5 = Mat::ones(Size(400, 400), CV_8UC1);m5 = 127;m5.Scalar(255, 0, 0);imshow("test", m5);

Scalar 是RGB3 通道,所以能创建各种样式的底色图片
在这里插入图片描述

3 克隆和拷贝

直接赋值,因为两个都是同样的data block,所以改变m4,就是改变m3

在这里插入图片描述
在这里插入图片描述

如果使用拷贝和克隆函数,m3和m4就属于不同的data block
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
copyTo也是一样

4 Kernel

在后面会说明
在这里插入图片描述

http://www.lqws.cn/news/599185.html

相关文章:

  • 动手学深度学习13.5. 多尺度目标检测-笔记练习(PyTorch)
  • IDE全家桶专用快捷键----------个人独家分享!!
  • MCP 协议使用核心讲解
  • 数据结构day4——栈
  • 板凳-------Mysql cookbook学习 (十一--------1)
  • 杭州来未来科技 Java 实习面经
  • grom使用mysql快速上手
  • SeaTunnel 社区 2 项目中选“开源之夏 2025”,探索高阶数据集成能力!
  • PHP爬虫实战指南:获取淘宝商品详情
  • 【仿muduo库实现并发服务器】eventloop模块
  • 『深度编码』C++中的参数传递
  • 02.SpringBoot常用Utils工具类详解
  • 【学习方法】框架质疑学习法:破解专业学习的“知识厚度”困境
  • 华为云开始了“开发者空间 AI Agent 开发”活动
  • es的读和写-Reading and writing documents
  • Windows 疑难杂症集 - MsMpEng.exe 磁盘占用率持续高占
  • 发布/订阅模式:解耦系统的强大设计模式
  • 第七讲~~测试工具(禅道项目管理系统)
  • 软件测试期末复习之白盒测试
  • FPGA FMC 接口
  • Electron 进程间通信(IPC)深度优化指南
  • SpringBoot计时一次请求耗时
  • 数据库编程-ORM
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(四)- 职位数据可视化(FineBI)
  • Java-String类静态成员方法深度解析
  • HDMI 2.1 FRL协议的流控机制:切片传输(Slicing)和GAP插入
  • 开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记
  • 【SQL知识】PDO 和 MySQLi 的区别
  • Golang的并发编程实践总结
  • github代码中遇到的问题-解决方案