首页 > 其他分享 >OpenCV(cv::Mat::colRange())

OpenCV(cv::Mat::colRange())

时间:2024-10-31 10:10:11浏览次数:4  
标签:Mat 矩阵 OpenCV Range colRange cv mat

目录



cv::Mat::colRange() 是 OpenCV 中的一个函数,用于在矩阵中选择指定的列范围。这对于图像或数据矩阵处理时需要选择特定列的情况非常有用。



1. 函数定义

colRange() 有两种使用方式:

cv::Mat Mat::colRange(int startcol, int endcol) const;
cv::Mat Mat::colRange(const Range &r) const;
  • int startcol:起始列的索引(包含)。
  • int endcol:结束列的索引(不包含)。
  • Range r:列范围,Range(startcol, endcol)

返回值:返回一个新的 cv::Mat,包含了源矩阵的指定列范围。



2. 功能

  • colRange() 不会复制数据,而是生成一个指向原始矩阵数据的子矩阵。这个操作是浅拷贝的,因此对子矩阵的修改会影响原始矩阵的数据。
  • 用于对矩阵的特定列范围进行处理,而无需创建新的数据拷贝,能节省内存和计算时间。


3. 代码示例

假设有一个图像或矩阵 mat

cv::Mat mat = (cv::Mat_<int>(3, 5) << 1, 2, 3, 4, 5,
                                       6, 7, 8, 9, 10,
                                       11, 12, 13, 14, 15);

3.1 选择第1列到第3列(列索引从0开始)

cv::Mat submat = mat.colRange(1, 4);

这将会创建一个新的矩阵 submat,包含 mat 的第1列到第3列的数据:

[ 2, 3, 4;
  7, 8, 9;
 12,13,14 ]

3.2 使用 Range 参数

同样的操作也可以使用 Range 参数来完成:

cv::Mat submat = mat.colRange(cv::Range(1, 4));


4. 注意事项

  1. 索引范围:起始列包含在内,但结束列不包含在内。
  2. 浅拷贝:生成的子矩阵与原矩阵共享数据,因此对子矩阵的更改会反映在原矩阵上。
  3. 范围限制:索引必须在矩阵的列范围内,否则会导致错误。


5. 常见用途

  • 在图像处理中提取图像的某些列以进行局部分析。
  • 数据矩阵中按列选择子集以进行特定运算。


标签:Mat,矩阵,OpenCV,Range,colRange,cv,mat
From: https://www.cnblogs.com/keye/p/18517121

相关文章

  • (ICCV2023)多尺度空间特征提取模块,有效涨点,即插即用
    题目:SAFMN:Spatially-AdaptiveFeatureModulationforEfficientImageSuper-Resolution期刊:CVPR(ConferenceonComputerVisionandPatternRecognition)GitHub地址:https://github.com/sunny2109/SAFMN年份:2023作者单位:TheChineseUniversityofHongKong(CUHK)......
  • OpenCV | 基于最细长轮廓自动校正旋转图片
    点击查看代码importcv2importnumpyasnpdefpreprocess_image(image):#转换为灰度图像gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#高斯模糊去噪blurred=cv2.GaussianBlur(gray,(33,33),0)#自适应阈值二值化binary=cv2.a......
  • 使用 OpenCV 进行视频帧操作
    视频帧的基本操作是视频处理的基础,构建了图像分析和计算机视觉等高级应用的技术前提。通过OpenCV库,视频处理从视频加载、帧读取到窗口显示与帧保存的流程逐步展开,实现了对视频信息的逐帧获取和操作。在此基础上,引入了灰度转换、模糊处理和边缘检测等技术,提升了视频帧的处理......
  • OpenCV与AI深度学习 | 实战 | YOLO11自定义数据集训练实现缺陷检测 (标注+训练+预测
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|YOLO11自定义数据集训练实现缺陷检测(标注+训练+预测保姆级教程)导 读   本文将手把手教你用YOLO11训练自己的数据集并实现缺陷检测。安装环境YOLO11的介绍和使用这里不再赘......
  • 如何使用腾讯云CVM搭建出海电商平台
    引言:2024年已经有太多的企业开始了迈出国门,在出海贸易当中进行试水。但由于政策、文化等诸多方面的不同,更多的企业在做低成本的尝试,以避免一次性投入过大带来的损失。因此,越来越多的企业和个人,开始学习电商平台的相关知识,了解电商平台的相关业务,一些开发者们也开始通过了解开源......
  • 编译opencv 提示opencv_sfm links to target absl::log but not found解决办法
    先说解决办法,安装ceres库版本需要<2ErrorwhileconfiguringCMaketobuildwithcontribmodules在香橙派5上编译opencv+opencv_contrib我是先源码编译的ceres库(2.2版本的,查看include\version.h)在opencv\build目录下生成配置时,提示configdone,generatefailed!并报......
  • 宇视设备视频平台EasyCVR海康私有化视频平台实现全方位、全天候监控码头海岸线视频监
    在现代港口管理和海岸线监控领域,采用先进的视频监管技术已成为提高管理效率和确保安全的重要措施。宇视设备视频平台EasyCVR作为一种高效且智能的视频汇聚与监管系统,为码头及海岸线的视频监控提供了全面的解决方案。一、背景与需求港口码头作为货物和集装箱堆放及中转的重要机......
  • ISUP协议视频平台EasyCVR视频分析设备平台浅述什么是分辨率,帧率,码流,码率
    在视频监控行业中,技术参数是衡量监控系统性能的重要指标。对于刚进入该领域的新手来说,一些基础概念如分辨率、帧率和码流可能会让人感到困惑。这些参数不仅决定了视频图像的清晰度和流畅度,还直接影响到存储和网络传输的需求。为了确保新入行的视频监控行业同仁能够快速掌握这些......
  • EHOME视频平台EasyCVR私有化部署视频平台视频监控系统画面花屏、马赛克、拖影问题快速
    在现代安全监控系统中,视频监控扮演着至关重要的角色,它不仅涉及到公共安全、个人财产保护,还关系到信息的实时获取与处理。然而,私有化部署视频平台EasyCVR在实际运行中可能会遇到画面花屏、马赛克、拖影或跳秒等问题,这些问题不仅影响监控效果,还可能对安全监控造成严重后果。因此,了解......
  • OpenCV(cv::dnn::blobFromImage())
    目录1.函数定义2.示例代码3.应用场景4.注意事项cv::dnn::blobFromImage()是OpenCV的DNN模块中的一个函数,用于将输入图像转换为深度学习模型可接受的输入格式(称为“blob”)。它通常在使用预训练的深度学习模型进行推理时,用于图像预处理,将图像格式转换为模型所需的四维张......