打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OpenCV isContinuous()函数简析

isContinuous()函数

cv::Mat::isContinuous()

返回为bool值,判断存储是否连续。

这里连续的 意思是行与行之间的储存是否衔接。也就是说1*11*N的数据肯定是连续的,而m*n的数据就是需要判断连续性的。

如果数据存储是连续的,可以将图像看出一个一维数组。否则只能用二维数据方式进行访问。

一般用Mat::creat()创建的矩阵都是连续的,但是也不绝对,依然需要判断才可以进行连续性操作。而从图像中截取的图像通常是不连续的,如果想将其转换为连续存储,可以用clone进行拷贝一份.

案例

例如下面代码

Mat image = imread("test2.jpg");

// 获取图像宽、高
int channels = image.channels();
int rows = image.rows;
int cols = image.cols * channels;
// isContinuous()函数,返回bool值,判断存储是否连续。
if (image.isContinuous()) {
cols *= rows;         
rows = 1;
}

如果数据存储是不连续的就直接获得矩阵的行数和列数。如果是连续的,行数就是1,列数就是所有像素

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OpenCV-DFT最优尺寸cv::getOptimalDFTSize
Opencv
opencv 傅立叶变换演示
opencv算术操作
BMP文件RGB颜色数据存放方式
opencv 一种不均匀光照的补偿方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服