opencv中图像基础(大小,深度,通道)
来源:互联网 发布:解压软件官方免费 编辑:程序博客网 时间:2024/05/14 22:56
创建图像包含三个元素:
1、图像的大小 2、图像的深度 3、图像的通道
例如:
cvCreateImage(cvSize(imgMono->width,imgMono->height), IPL_DEPTH_8U, 3)
1、图像的位深度及其取值范围:src.depth()
Mat类型:
矩阵数据类型:
–
S = 符号整型
E.g.:
CV_8UC1 是指一个8位无符号整型单通道矩阵,
CV_32FC2是指一个32位浮点型双通道矩阵
CV_8UC1
CV_8UC2
CV_8UC3
CV_8UC4
CV_32SC1
CV_32SC2
CV_32SC3
CV_32SC4
depth 图像元素的位深度,可以是下面的其中之一:
IPLimage类型:
位深度 取值范围
IPL_DEPTH_8U - 无符号8位整型 0--255
IPL_DEPTH_8S - 有符号8位整型 -128--127
IPL_DEPTH_16U - 无符号16位整型 0--65535
IPL_DEPTH_16S - 有符号16位整型 -32768--32767
IPL_DEPTH_32S - 有符号32位整型 0--65535
IPL_DEPTH_32F - 单精度浮点数 0.0--1.0
IPL_DEPTH_64F - 双精度浮点数 0.0--1.0
如上,给出图像的位深度及其取值范围后,我们不难理解,要转换位深度本质上就是对原深度下的数据做线性变换,使原位深度下的最小值和最大值分别对应转换后位深度下的最小值和最大值。实现上述线性变换,我们可以用opencv库函数cvConvertScale。
cvConvertScale函数简介
查询百度百科后,可以的得到关于cvConvertScale函数的说明如下。
cvConvertScale( const CvArr* src, CvArr* dst,double scale CV_DEFAULT(1),double shift CV_DEFAULT(0) );
功能:使用线性变换转换数组
参数说明: src 输入数组,dst 输出数组,scale 比例因子,shift 偏移量。
对应的线性变换公式: dst(I)=src(I)*scale + (shift,shift,...)。
实例
比如将IPL_DEPTH_8U 转换成 IPL_DEPTH_32U,我们需要用线性变换将[0 255] 映射为 [0 1]。不难求出线性变换的参数scale=1/255, shift=0。即通过如下代码可实现位深度间转换(注,函数最后一个参数为0,等于默认参数,可以不用写)。
<span style="background-color: rgb(255, 255, 255);">cvConvertScale(pImg8, pImg32, 1.0/255, 0); </span>类似的如果IPL_DEPTH_32U转换成IPL_DEPTH_8U,我们需要用线性变换将[0 255] 映射为 [0 1]。对应的参数为scale=255, shift=0。即可通过如下代码行实现两位深度间的转换。
<span style="background-color: rgb(255, 255, 255);">cvConverScale(pImg32, pImg8, 255, 0);</span>
其余类型做法相似,不一一举例。
总结
要实现不同位深度间数据的转换,首先我们需要知道不同位深度对应数据的取值范围,然后计算出关于两取值范围上下限的线性变换,最后将图像数据和线性变换参数代入函数cvConvertScale()。、
2、图像的大小:Size()
size包含两个参数:就是图像的宽度和高
取图像的大小src.size()
Size (宽,高)
3、图像的通道:
1、比较通俗易懂的解释是:灰度图的通道数为1,彩色图的通道为3。基本上,描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。如果一个像素点,有RGB三种颜色来描述它,就是三通道。
windows的bmp有时候是一个四通道图像,R、G、B加上一个A通道,表示透明度
经常用于设置矩阵方面
- opencv中图像基础(大小,深度,通道)
- opencv中图像基础(大小,深度,通道)
- Opencv基础:图像(IplImage)深度与通道
- opencv中图像的深度和通道
- opencv中图像深度与通道介绍
- opencv中图像的通道、深度的解释
- opencv中图像的通道、深度的解释
- opencv中图像的通道、深度的解释
- opencv中图像的通道、深度的解释
- opencv图像基础(1)图像深度
- opencv 图像的深度和通道介绍
- opencv 图像的深度和通道
- opencv 图像的深度和通道介绍
- opencv 图像的深度和通道介绍
- openCV 图像深度和通道介绍
- OpenCV中图像深度
- 关于opencv中图像的通道数(channels)问题
- OpenCV中图像的通道问题
- onSaveInstanceState和onRestoreInstanceState
- 黑马程序员-OC类小结
- FastReport中修改页码的代码
- HDU 5082 Love
- android应用:startActivityForResult使用实例
- opencv中图像基础(大小,深度,通道)
- POJ 2653 线段位置关系判断模板
- 网络攻击技术(二)——Cross-site scripting
- Servlet精华
- socket函数返回值分析
- epon架构
- 网络攻击技术(三)——Denial Of Service
- Kafka 几个重要的配置总结
- 常用技巧