OpenCV—矩阵数据类型转换cv::convertTo

函数

[cpp] view plaincopy
  1. void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;

参数

m       – 目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。

rtype – 目标矩阵的类型。因为目标矩阵的通道数与源矩阵一样,所以rtype也可以看做是目标矩阵的位深度。如果rtype为负值,目标矩阵和源矩阵将使用同样的类型。

alpha – 尺度变换因子(可选)。

beta   – 附加到尺度变换后的值上的偏移量(可选)。

描述

函数将源矩阵中的像素值转换为目标类型。最后会使用溢出保护函数saturate_cast<> ,以避免转换过程中可能出现的溢出。函数执行如下运算:

示例

在应用分水岭算法分割图像时,标记图像为32位有符号整型CV_32S变量(以便定义超过255个标签,每个值标记一类物体,如255标记目标,128标记背景,0标记未知等等)构成的矩阵markers,想要将标记图像显示出来必须转换其数据类型。
[cpp] view plaincopy
  1. markers.convertTo(tmp,CV_8U,255,255);

将矩阵markers转换为CV_8U类型的矩阵tmp:tmp(x,y)= markers(x,y)*255+255.这样,将图像做线性变换,使值为-1的像素变为0(-1*255+255=0)。值大于255的像素将赋值为255,这是因为CV32S转换为无符号CV_8U时,应用了饱和度运算。具体应用参看分水岭算法的相关博文。

转载请注明:iracer的CSDN博客 http://blog.csdn.net/iracer/article/details/49204147

OpenCV—矩阵数据类型转换cv::convertTo相关推荐

  1. opencv笔记(三十一)——Mat 矩阵数据类型转换convertTo

    一.数据类型转换 1.一般图像文件格式使用的是unsigned 8bits,对应的数据类型有:CV_8UC1.CV_8UC2,CV_8UC3 其中,CV_8UC3表示3通道8位的unsigned ch ...

  2. Armadillo与OpenCV矩阵数据mat、vec与Mat的相互转换

      本文介绍在C++ 语言中,矩阵库Armadillo的mat.vec格式数据与计算机视觉库OpenCV的Mat格式数据相互转换的方法.   在C++ 语言的矩阵库Armadillo与计算机视觉库Op ...

  3. Python矩阵数据类型转换

    a为矩阵,若将a的数据类型转为int,则a.astype(np.int),ps:这样不会改变a自己的数据类型,若想改变,则赋值给a,即a=a.astype(np.int)

  4. [OpenCV] CV_32F与CV_8U之间的数据类型转换

    OpenCV CV_32F与CV_8U之间的类型转换 文章目录 OpenCV CV_32F与CV_8U之间的类型转换 前言 一.OpenCV都有哪些数据类型 二.代码实例 总结 前言 最近在c++使用 ...

  5. 图像位深度 8位 16位 24位 32位区别对比 RGB 真彩色 基本概念:(大小,深度,通道)位深度数据类型转换原理 Mat数据读取(opencv里的imread)

    位深度 位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的二进制数值位数来表示的.计算机之所以能够显示颜色,是采用了一种称作"位"( bit ) 的记数单位来记录所表 ...

  6. python文本数据转换数值矩阵_python numpy矩阵的数据类型转换

    在python中,numpy矩阵的数据类型转换需要调用astype(),直接修改dtype是无效的.调用astype返回数据类型修改后的矩阵,但是源数据的类型不会变,需要再对源数据的赋值进行操作才可以 ...

  7. matlab int8 矩阵,unit8_matlab数据类型转换——int8转换成unit8

    在一个驱动程序中看到uint16,uint32,unit8,int8... uint16 :无符号16bit整数, uint32:无符号32bit整数, unit8:无符号8bit整数, int8:有 ...

  8. python numpy矩阵的数据类型转换

    在python中,numpy矩阵的数据类型转换需要调用astype(),直接修改dtype是无效的.调用astype返回数据类型修改后的矩阵,但是源数据的类型不会变,需要再对源数据的赋值进行操作才可以 ...

  9. OpenCV库和GDAL库数据类型转换

    OpenCV库和GDAL库数据类型转换 一.数据类型总结 二.OpenCV数据类型定义 1.1 生成类型定义 1.2 读取类型定义 三.GDAL库数据类型定义 一.数据类型总结 写在前面:由于在编写代 ...

最新文章

  1. 值得深思的问题——分库分表就能无限扩容吗?
  2. SAP 调用外部系统
  3. 《系统集成项目管理工程师》必背100个知识点-88系统集成项目收尾管理工作
  4. Java黑皮书课后题第7章:*7.7(统计个位数的数目)编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数
  5. idea会抛出Unable to import maven project: See logs for details错误
  6. 使用fping 查看局域网中有哪些ip
  7. Qt之格栅布局(QGridLayout)
  8. java中的类方法和实例方法_下面关于Java语言中实例方法和类方法的说法,哪几项是对的?...
  9. 推荐 :深度学习初学者不可不知的25个术语和概念(上)
  10. C++ memset 踩坑(转载)
  11. ykhmi是什么触摸屏软件_触摸屏如何读写变频器参数?如何控制变频器?实操步骤及方法分享...
  12. win10提示“应用程序无法正常启动 0xc0150002”怎么办
  13. WebGL中实现三维融合视频投影技术
  14. 一政网:公务员到底是做什么的?
  15. Android肝帝战纪之ObjectBox移动数据库框架探究与实现
  16. CTGNet GIA和CN2 GIA的区别
  17. 数据结构1 - 向量
  18. 快速了解 Robot Operating System(ROS) 机器人操作系统
  19. 使用Arduino开发板控制伺服电机
  20. 深入学习sniffer

热门文章

  1. boost::python::back_reference相关的测试程序
  2. boost::proto模块实现简单的算术表达式求值器的测试程序
  3. boost::mp11::mp_remove相关用法的测试程序
  4. boost::mp11::mp_and相关用法的测试程序
  5. boost::gil::scale_lanczos用法的测试程序
  6. GDCM:gdcm::UIComp的测试程序
  7. Boost:清理cleanup测试程序
  8. C++如何使用puff()的示例
  9. ITK:计算图像的逆FFT
  10. DCMTK:类DcmPersonName的测试程序