【转】opencv中widthStep不一定等于width*nChannels的原因「建议收藏」

【转】opencv中widthStep不一定等于width*nChannels的原因「建议收藏」【转】opencv中widthStep不一定等于width*nChannels的原因opencv里图片属性widthStep属性有点奇怪,它稍大于width*nChannels。如3*3的3通道bmp图片,所有像素RGB分量都为97,输出如下:图像详细参数nSize: 112imageSize:36nChannels:3height: 3wid

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

【转】opencv中widthStep不一定等于width*nChannels的原因

opencv里图片属性widthStep属性有点奇怪,它稍大于width * nChannels。如3*3 的3通道bmp图片,所有像素RGB分量都为97,输出如下:
图像详细参数
nSize:   112
imageSize: 36
nChannels: 3
height:   3
width:   3
widthstep: 12
979797979797979797000
979797979797979797000
979797979797979797000
可见,其在每一行后都补零。以使widthstep为4的倍数。为什么会这样呢?
先看下面的例子。
class A
{

    char a;
};   

class B
{

    char a;
    int b;
};    
int main()
{

    std::cout << “Size of A: ” << sizeof(A) << std::endl;
    std::cout << “Size of B: ” << sizeof(B) << std::endl;    
    std::cin.get();
    return 0 ;
}

输出1 8;
从这个例子可以看出,类中的成员的内存会自动补齐,补齐的方式为都补为4的倍数。我估计在opencv中也是同样的原因。(内存对齐)

转自http://blog.csdn.net/zhirom/article/details/7487159

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137472.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 海洋测绘 知识点 详细

    海洋测绘 知识点 详细一、第一章海洋测绘概述第一节、海洋测绘的发展第二节、世界海洋新格局1.海洋法公约的一些主要概念与定义:(1)内海:也叫内水,指的是领海基线以内的水域,国家对其享有完全排他性主权(2)领海:领海向外延伸12海里的区域(1海里(nmi)=1.852千米(km),沿海国主权管辖下与其海岸或内水相邻的一定宽度的海域,是国家领土的组成部分(3)毗邻区:毗邻国家领海,并在领海外一定宽度的,供沿…

  • Kafka实战:如何把Kafka消息时延秒降10倍

    Kafka实战:如何把Kafka消息时延秒降10倍

  • 如何关闭nginx服务_如何启动nginx

    如何关闭nginx服务_如何启动nginxNginx服务器启停命令Nginx安装完成后,接下来我们要学习的是如何启动、重启和停止Nginx的服务。对于Nginx的启停在linux系统中也有很多种方式,我们本次课程介绍两种方式:Nginx服务的信号控制Nginx的命令行控制方式一:Nginx服务的信号控制前面在提到Nginx的高性能,其实也和它的架构模式有关。Nginx默认采用的是多进程的方式来工作的,当将Nginx启动后,我们通过ps-ef|grepnginx命令可以查看到如下内容:从上图中可以看到,Nginx后台进程中包含

  • java中的new BufferedReader(new InputStreamReader(System.in))「建议收藏」

    java中的new BufferedReader(new InputStreamReader(System.in))「建议收藏」流JAVA/IO基本小结通过一行常见的代码讨论:newBufferedReader(newInputStreamReader(System.in))java的IO是基于流(stream)概念的,什么是流呢,作为初学者,我是这样理解的,在各个应用之间传送的是BITS,这些BIT可已被认为是流体,可以就认为是水流,那么用来在各个水源之间转移水的工具应该选择什么呢?一般情况下,水管…

  • 百度地图SDK使用[通俗易懂]

    百度地图SDK使用[通俗易懂]将百度地图官网下载的SDK的压缩包解压得到如下文件:将BaiduLBS_Android.jar复制到libs目录下,并点击同步版本比较老的Gradle可能没有这一句,需要手动添加,然后同步在ma

  • Java线程(二):线程同步synchronized和volatile

    Java线程(二):线程同步synchronized和volatile要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。拿上篇博文中的例子来说明,在多个线程之间共享了Count类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Count对象的一个副本,当线程操作Count对象时,首先从主内存复制Co…

发表回复

您的电子邮箱地址不会被公开。

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