OpenCV中的width和widthstep[通俗易懂]

OpenCV中的width和widthstep[通俗易懂]一是width属性;二是widthStep属性。     前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。     在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。     如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空着。

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132058.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 关于Raid0,Raid1,Raid5,Raid10的总结

    关于Raid0,Raid1,Raid5,Raid10的总结RAID0定义:RAID0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就

    2022年7月1日
  • vue漂亮的树控件_前端树形控件

    vue漂亮的树控件_前端树形控件实现效果与原理我们希望实现鼠标移动至树型结构的结点上就显示按钮,移出就隐藏按钮实现原理:是通过@mouseenter和@mouseleave两个属性来控制鼠标hover的效果,再配合v-sho

    2022年7月29日
  • 【转载】SOAP协议介绍

    【转载】SOAP协议介绍

    2021年11月18日
  • 开关量电压转换电路

    开关量电压转换电路单片机的I/O口承受输入电压一般是-5V到 +5V,如果一个开关接的距离比较远,就容易受到线路干扰、线缆本身的电阻率影响导致MCU无法识别。虽然MCU的I/O的输入是“高阻抗”的,但是还是很难确保远距离后的影响。  左边可以输入0~12V,右边可以很稳定的输出0~5V

    2022年5月5日
  • Python语法详解

    Python语法详解python语法解析Python的结构有三种:顺序结构、分支结构、循环结构。一、顺序结构具体结构如下:顺序结构比较简单,就是按照代码的顺序从上到下执行,这是Python最基本的程序执行结构,也

    2022年7月5日
  • 处理pdb文件

    处理pdb文件importosfrommathimportsqrtimportnumpyimporttorchfromBio.PDBimportPDBParserfromtorch.utils.dataimportDataset,DataLoaderfromtorch.utils.tensorboardimportSummaryWriterdevice=torch.device(“cuda”)classP450Dataset(Dataset):de.

    2022年6月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号