opencv widthstep 理解
2015-08-30 10:48
381 查看
widthstep是指图像每行所占的字节数,
定义:
image->widthStep = (((image->width * image->nChannels *(image->depth & ~IPL_DEPTH_SIGN) + 7)/8)+ align - 1) & (~(align
- 1));
图像宽度 图像通道数 计算得到的widthStep
3 3 12
3 1 4
5 3 16
5 1 8
7 3 24
7 1 8
4 3 12
4 1 4
主要要和width区别,width是指每行所含的像素个数,但是一个像素也可能占一个字节,也可能占三个字节或者四个,多个等
.imagedata是指向存储图像像素值数组的指针,内容是这个数组的首地址,pt.y指的是像素点的行坐标,所以Img->imageData
+ Img->widthStep*pt.y便是该像素点所在行的首地址,然后再加上该像素点所在的列,即pt.x,就得到了该像素点的地址,所以代码也可以写成
((uchar*)(Img->imageData + Img->widthStep*pt.y+pt.x)),都是指该像素点的像素值,至于强制类型转换,是因为会产生一些负值,而像素值是不能为负的.
定义:
image->widthStep = (((image->width * image->nChannels *(image->depth & ~IPL_DEPTH_SIGN) + 7)/8)+ align - 1) & (~(align
- 1));
图像宽度 图像通道数 计算得到的widthStep
3 3 12
3 1 4
5 3 16
5 1 8
7 3 24
7 1 8
4 3 12
4 1 4
主要要和width区别,width是指每行所含的像素个数,但是一个像素也可能占一个字节,也可能占三个字节或者四个,多个等
.imagedata是指向存储图像像素值数组的指针,内容是这个数组的首地址,pt.y指的是像素点的行坐标,所以Img->imageData
+ Img->widthStep*pt.y便是该像素点所在行的首地址,然后再加上该像素点所在的列,即pt.x,就得到了该像素点的地址,所以代码也可以写成
((uchar*)(Img->imageData + Img->widthStep*pt.y+pt.x)),都是指该像素点的像素值,至于强制类型转换,是因为会产生一些负值,而像素值是不能为负的.
相关文章推荐
- OpenStack之学习资料
- linux命令汇总(mkdir、rmdir、touch、dirname、basename)
- 使用createrepo自建yum源
- php5+apache2+mysql环境安装authpuppy
- MacBook Pro (OS X yosemite 10.10.5) 安装opencv2.4.10过程
- 《Hadoop基础教程》之初识Hadoop
- Spring tomcat jdbc pool mybatis 集成配置
- 体验 Docker
- Citrix xendesktop静态分发模式下合理管控分配虚拟桌面本地管理员权限
- hadoop2.x编译(一)
- linux命令汇总(wc、cut、sort、uniq)
- ZY-2015-08-27
- 我的openwrt学习笔记(十八):linux便捷开发命令之alias
- linux 学习笔记之用户管理命令
- linux 学习笔记之文件的压缩和解压
- Linux____套接字选项
- OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤
- nginx搭建与配置
- Screensaver<用线段树维护函数系数>
- Ubuntu 14.04下安装Hadoop2.4.0 (单机模式)