在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 含义相关推荐

  1. opencv CV_8UC1,CV_8UC2,CV_8UC3

    opencv 在建立mat或者存储时会有这个参数传入, CV_8UC1字面拆解为8位无符号数,图像通道1个,例如灰度图 CV_8UC2字面拆解为8位无符号数,图像通道2个,例如黑白图之类的 CV_8U ...

  2. OpenCvSharp中CV_8UC1,CV_8UC2等参数的解释

    Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数介绍 Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类: 创建一个Mat对象的方法很多,我拿出其中一个重载的参数的MatT ...

  3. Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多 3--使用Mat图像 ...

  4. OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...

  5. OpenCv--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...

  6. OpenCV学习笔记(19)关于CV_8UC1,CV_8UC2等参数

    转载自 http://blog.csdn.net/maweifei/article/details/51221259 (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1-- ...

  7. 为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)

    因为用CV_32F做处理精度较高,后面显示最终还得转换回cv_8UC3 示例:提高图像对比度(rgb和灰度都已实现) #include <opencv2/opencv.hpp> #incl ...

  8. 视觉SLAM ch5代码总结(一)

    CMakeLists.txt cmake_minimum_required(VERSION 2.8)project(basics)#Eigen include_directories("/u ...

  9. Opencv之Mat操作(重要)

    1.Mat基础 在计算机内存中,数字图像是已矩阵的形式保存的.OpenCV2中,数据结构Mat是保存图像像素信息的矩阵,它主要包含两部分:矩阵头和一个指向像素数据的矩阵指针. 矩阵头主要包含,矩阵尺寸 ...

最新文章

  1. python学习笔记9-函数1
  2. centos7python命令_02.将python3作为centos7的默认python命令
  3. 【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)
  4. 离散结构和离散数学中文书_在离散数学中对场景执行的操作
  5. uva 10954——Add All
  6. Centos镜像使用帮助
  7. 读取iOS plist文件 (其实类似读取xml文件)
  8. 为什么macOS比Windows快那么多,是硬件的缘故么?
  9. spring jpa查询视图
  10. dedecms安全提示解决方法
  11. ev3编程 越野机器人_乐高EV3机器人编程超简单
  12. 科技爱好者周刊:第 84 期
  13. 软件测试面试英文自我介绍,软件测试英文面试自我介绍范文
  14. 公务员考试行测、申论答题时间分配
  15. Criteo启动上海数据中心,加大对中国市场的投入
  16. 更改laravel的默认端口8000
  17. Spring Boot 2.0 配置图文教程 1
  18. 定时任务的时间规则设置
  19. chromedriver镜像
  20. node+express+mock

热门文章

  1. Maven依赖解析之倍增提速,eBay Velocity实践的开源新算法
  2. 旷视科技成立 6 周年,我们和孙剑聊了聊
  3. 基于JAVA语言开发的一套电子病历源码 完整可用
  4. 演示ps高光在哪里以及如何分辨图像暗调、高光、中间调
  5. rust 02 rustdesk基于rust的开源远程控制软件
  6. html中对地址转码,浏览器自动将参数中的url转码问题
  7. python 文件读写操作总结
  8. 2016年4月工业用微型计算机,2021年4月自考02241工业用微型计算机真题及答案
  9. 1.word2019
  10. go reflect 3 rules