OpenCV中如何获取Mat类型中的步长stride及分析 C++实现

Table of Contents

问题需求:获取Mat stride

官方资料解释

如何获取stride

深入分析

MatStep类型的结构体

MatStep的构造函数

隐式类型转换的操作符重载函数

运算符重载的知识

完整版代码


问题需求:获取Mat stride

如题,需要使用到Mat类型的步长stride。

先从本地读取一张图片,单步进去看到srcImage的属性如下图,有stride,也有width,height,channels等

我们可以通过srcImage.cols或者srcImage.size().width来获取图片的宽度,

通过srcImage.channels()来获取通道数量,

通过srcImage.type()来获取图片类型,

但是怎么获取图片的stride呢?

这两种方式

    srcImage.stride

或者   

    srcImage.stride()

都是不对的,

编译器会报错:“Error:class "cv::Mat" has no member "stride"”。

怎么办?

官方资料解释

去OpenCV头文件里只找到这一段话:【位于mat.hpp里】

So, the data layout in Mat is fully compatible with CvMat, IplImage, and CvMatND types from OpenCV
1.x. It is also compatible with the majority of dense array types from the standard toolkits and
SDKs, such as Numpy (ndarray), Win32 (independent device bitmaps), and others, that is, with any
array that uses *steps*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值