CV_8UC1,CV_8UC2,CV_8UC3 Vec2b Vec3b Vec4b 含义
在OpenCv中,使用Mat存图像,有专门的数据类型
一般的图像文件格式使用的是 Unsigned 8bits吧,CvMat矩阵对应的参数类型就是
CV_8UC1,CV_8UC2,CV_8UC3。 其中 U代表 Unsigned 无符号、C代表CvMat 后面的数字代表通道数
(最后的1、2、3表示通道数,譬如RGB3通道就用CV_8UC3)
而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3...
double是64bits,对应CvMat数据结构参数:CV_64FC1,CV_64FC2,CV_64FC3等。
7.OpenCV 源代码中的定义:
typedef Vec <uchar, 2> Vec2b;
Vec2b—表示每个Vec2b对象中,可以存储2个char(字符型)数据
Vec3b—表示每一个Vec3b对象中,可以存储3个char(字符型)数据,比如可以用这样的对象,去存储RGB图像中的
Vec4b—表示每一个Vec4b对象中,可以存储4个字符型数据,可以用这样的类对象去存储—4通道RGB+Alpha的图
遍历方法就是 用 at 其中现需要 把模板类T 变成Vec4b
for (int i = 0; i < img.rows; i++) {for (int j = 0; j < img.cols; j++) {//Mat::at()取值或改变某点的像素值比较耗时,可以采用Mat的模板子类Mat_<T>//Mat类中的at方法作用:用于获取图像矩阵某点的值或改变某点的值。double temp = img.at<Vec4b>(i, j)[3] / 255.0;mat.at<Vec4b>(i, j)[0] = (1 - temp)*back_img.at<Vec4b>(i, j)[0] + temp *img.at<Vec4b>(i, j)[0];mat.at<Vec4b>(i, j)[1] = (1 - temp)*back_img.at<Vec4b>(i, j)[1] + temp *img.at<Vec4b>(i, j)[1];mat.at<Vec4b>(i, j)[2] = (1 - temp)*back_img.at<Vec4b>(i, j)[2] + temp *img.at<Vec4b>(i, j)[2];mat.at<Vec4b>(i, j)[3] = (1 - temp)*back_img.at<Vec4b>(i, j)[3] + temp *img.at<Vec4b>(i, j)[3];}}
CV_8UC1,CV_8UC2,CV_8UC3 Vec2b Vec3b Vec4b 含义相关推荐
- opencv CV_8UC1,CV_8UC2,CV_8UC3
opencv 在建立mat或者存储时会有这个参数传入, CV_8UC1字面拆解为8位无符号数,图像通道1个,例如灰度图 CV_8UC2字面拆解为8位无符号数,图像通道2个,例如黑白图之类的 CV_8U ...
- OpenCvSharp中CV_8UC1,CV_8UC2等参数的解释
Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数介绍 Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类: 创建一个Mat对象的方法很多,我拿出其中一个重载的参数的MatT ...
- Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多 3--使用Mat图像 ...
- OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
(一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...
- OpenCv--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
(一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...
- OpenCV学习笔记(19)关于CV_8UC1,CV_8UC2等参数
转载自 http://blog.csdn.net/maweifei/article/details/51221259 (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1-- ...
- 为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)
因为用CV_32F做处理精度较高,后面显示最终还得转换回cv_8UC3 示例:提高图像对比度(rgb和灰度都已实现) #include <opencv2/opencv.hpp> #incl ...
- 视觉SLAM ch5代码总结(一)
CMakeLists.txt cmake_minimum_required(VERSION 2.8)project(basics)#Eigen include_directories("/u ...
- Opencv之Mat操作(重要)
1.Mat基础 在计算机内存中,数字图像是已矩阵的形式保存的.OpenCV2中,数据结构Mat是保存图像像素信息的矩阵,它主要包含两部分:矩阵头和一个指向像素数据的矩阵指针. 矩阵头主要包含,矩阵尺寸 ...
最新文章
- python学习笔记9-函数1
- centos7python命令_02.将python3作为centos7的默认python命令
- 【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)
- 离散结构和离散数学中文书_在离散数学中对场景执行的操作
- uva 10954——Add All
- Centos镜像使用帮助
- 读取iOS plist文件 (其实类似读取xml文件)
- 为什么macOS比Windows快那么多,是硬件的缘故么?
- spring jpa查询视图
- dedecms安全提示解决方法
- ev3编程 越野机器人_乐高EV3机器人编程超简单
- 科技爱好者周刊:第 84 期
- 软件测试面试英文自我介绍,软件测试英文面试自我介绍范文
- 公务员考试行测、申论答题时间分配
- Criteo启动上海数据中心,加大对中国市场的投入
- 更改laravel的默认端口8000
- Spring Boot 2.0 配置图文教程 1
- 定时任务的时间规则设置
- chromedriver镜像
- node+express+mock