OpenCV2:先导篇 基础数据类型
一.简介
二.数据类型缩写
1.小写
b = unsigned char
w = unsigned short
s = short
i = int
f = float
d = double
2.大写
U=无符号整型
S=符号整型
F=浮点型
3.像素值
typedef unsigned char uchar;
这里 uchar 表示无符号字符类型,通常用来描述成像素值
因为在 cv::Mat 图像类中,图像数据就是 uchar* data
单通道图像就是灰度图像,只有8位深度包含全黑全白(2的8次方=256种灰度等级)
二.矩阵类型
int type; //矩阵类型
宏命名规则:CV_(位数)+(数据类型)+(通道数)
1.8位
CV_8UC1
CV_8UC2
CV_8UC3
CV_8UC4
CV_8UC(n)
CV_8SC1
CV_8SC2
CV_8SC3
CV_8SC4
CV_8SC(n)
2.16位
CV_16UC1
CV_16UC2
CV_16UC3
CV_16UC4
CV_16UC(n)
CV_16SC1
CV_16SC2
CV_16SC3
CV_16SC4
CV_16SC(n)
3.32位
CV_32SC1
CV_32SC2
CV_32SC3
CV_32SC4
CV_32SC(n)
CV_32FC1
CV_32FC2
CV_32FC3
CV_32FC4
CV_32FC(n)
4.64位
CV_64FC1
CV_64FC2
CV_64FC3
CV_64FC4
CV_64FC(n)
三.矩阵大小
Size size; //矩阵大小
四.矩阵行步长
size_t step; //矩阵行步长
step=AUTO_STEP;
五.通道像素值
const Scalar& s; //通道像素值,最多可表示4个通道的像素值
六.矩阵维度
int ndims; //矩阵维度
七.矩阵向量
typedef Vec<uchar, 2> Vec2b;
typedef Vec<uchar, 3> Vec3b;
typedef Vec<uchar, 4> Vec4b;
typedef Vec<short, 2> Vec2s;
typedef Vec<short,3> Vec3s;
typedef Vec<short,4> Vec4s;
typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;
typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;
typedef Vec<float, 4> Vec4f;
typedef Vec<float, 6> Vec6f;
typedef Vec<double, 2> Vec2d;
typedef Vec<double, 3> Vec3d;
typedef Vec<double, 4> Vec4d;
typedef Vec<double, 6> Vec6d;
其中 typedef Vec<uchar,3> Vec3b 最常用,用来表示三通道图像数据,分别代表了 R G B 三个通道不同的像素值
RGB图像有24位深度(2的24次方=16777216),每个通道有8位深度(2的8次方=256)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)