一是width属性;二是widthStep属性。

前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。

在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。

如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空着。

也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。

需要注意的是,空着的那个像素并不是无效的,它仍然可以被操作,这就是导致错误的根源。

其实原因就在于,在cvCreateImage的时候,OpenCV为实现字节对齐,使得每行数据实际有16个字节(多出一个),在使用memcpy的过程中,这些多出的字节就把对应的数据给“吃”了,因为这些数据在cvShowImage的时候并不会显示出来,这样,第二行就少一个字节,第三行少两个字节,……,所以整个图像就显示错误了!

OpenCV中的width和widthstep相关推荐

  1. 谈谈我对opencv中IplImage图像参数widthstep的理解

    最近在弄vs与MATLAB混合编程实现图像识别的东西,刚接触到opencv还生疏的很,遇到了各种各样奇葩的问题,其中不管怎样释放内存都不会少的内存泄露实在是让我很头疼,现在开始一点点的弄每个图像的参数 ...

  2. OpenCV里IplImage数据结构中的width和widthStep

    转自http://nst1987.blog.163.com/blog/static/14950891120101120114029646/ IplImage有两个属性容易导致错误:width和widt ...

  3. opencv 中x,y,height, width,rows,cols 的关系

    opencv中图像的x,y 坐标以及 height, width,rows,cols 他们的关系经常混淆. rows 其实就是行,一行一行也就是y 啦.height高度也就是y啦. cols  也就是 ...

  4. opencv中图像的基本结构 类型的定义

    CvPoint 二维坐标系下的点,类型为整型 typedef struct CvPoint{int x; /* X坐标, 通常以0为基点 */int y; /* y坐标, 通常以0为基点 */} Cv ...

  5. OpenCV中IplImage/CvMat/Mat转化关系

    原文链接:http://www.cnblogs.com/summerRQ/articles/2406109.html 如对内容和版权有何疑问,请拜访原作者或者通知本人. opencv中常见的与图像操作 ...

  6. OpenCV中的三种图像数据结构CvMat, IplImage和Mat(二)IplImage

    本文为原创,若有错误欢迎批评指正! 一. IplImage结构体构成 IplImage比CvMat要复杂一些,结构体组成如下: typedef struct _IplImage { int nSize ...

  7. OpenCV中的光流及视频特征点追踪

    OpenCV中的光流及视频特征点追踪 1. 效果图 2. 原理 2.1 什么是光流?光流追踪的前提.原理 2.2 光流的应用 2.3 光流的2种方法 3. 源码 3.2 稀疏光流追踪 3.2 优化版稀 ...

  8. OpenCV中的霍夫线变换、概率霍夫线变换

    OpenCV中的霍夫线变换.概率霍夫线变换 1. 效果图 2. 原理 2.1 什么是霍夫变换? 2.2 什么是概率霍夫变换? 3. 源码 3.1 霍夫变换 3.2 概率霍夫变换 参考 这篇博客将介绍P ...

  9. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器

    详解OpenCV中的Lucas Kanade稀疏光流单应追踪器 1. 效果图 2. 源码 参考 这篇博客将详细介绍OpenCV中的Lucas Kanade稀疏光流单应追踪器. 光流是由物体或相机的运动 ...

最新文章

  1. IIS6.0 web.config
  2. Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]
  3. POJ - 3764 The xor-longest Path(字典树性质)
  4. 出现23.97帧率的原因
  5. 纸盒叠成的长方形竟然能自己动?
  6. 条件、循环、函数定义 练习
  7. 一个符合SEO优化标准的网站应具备哪些特征?
  8. Bootstrap分页传值问题
  9. python OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized
  10. linux 命令行图形界面切换
  11. 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
  12. Python Web开发
  13. 成为黑客必须掌握的知识!
  14. 3DMax教程: 3DMax快捷键与界面操作!
  15. 神经元模型 Hodgkin Huxley model
  16. Ajax传JSON对象报错:JSON parse error: Unrecognized token ‘ids‘: was expecting (‘true‘, ‘false‘ or ‘null‘);
  17. 虚拟化(六):vmware 桌面虚拟化 horizon view 介绍
  18. 数据源SqlDataSource,DetailView,ObjectDataSource控件的配置使用
  19. python应用如何实现升级_基于esky实现python应用的自动升级详解
  20. 怎么对比2个数据库的差异

热门文章

  1. 雅虎制止人才流失出狠招 可加速兑现股票期权
  2. Java:阶乘0! = 1 1! = 1 2! = 2.....
  3. 颜色分散体市场现状及未来发展趋势
  4. Exp2 后门原理与实践
  5. 开题报告撰写注意事项
  6. QQ汉字验证码原理(C#随机中文汉字验证码)
  7. MySQL数据库 第5章:单表操作
  8. 【计算机毕业设计】智乐健身后台管理系统
  9. spring + mybtis 事务详解(connection一致性)
  10. 用Python爬取网易云音乐歌曲