当前位置: 首页 > article >正文

ORB-SLAM2之OpenCV reshape函数

1.reshape函数

1.作用:

    在opencv中,reshape函数可以重新调整图像矩阵的行数、列数、通道数。

2.ORB-SLAM2涉及的代码段:

    在OREB-SLAM2中frame.cc源文件中UndistortKeyPoints()函数中有这样的一个代码段,其中涉及了reshape函数,代码段如下:

// Undistort points
    mat=mat.reshape(2);
    cv::undistortPoints(mat,mat,mK,mDistCoef,cv::Mat(),mK);
    mat=mat.reshape(1);

    解释:该部分代码讲的是对提取的ORB特征点进行去畸变,它先对矩阵进行reshape(2)变成双通道矩阵之后调用undistortPoints()函数对矩阵进行去畸变,在对矩阵进行reshape(1)变成单通道矩阵。

3.reshape函数原型(C++):

cv::Mat cv::Mat::reshape(int channels, int rows=0) const

参数:

     1.channels:要将矩阵重塑成的通道数,如果设为0,则表示保持通道数不变,否则则变为设置的通道数。

            2.rows(可选):要将矩阵重塑成的行数,如果设为0,则表示保持原有的行数不变,否则则变为设置的行数。

2.实例      

1.初始矩阵:

一个2行4列1通道的一个矩阵
代码:

int main()
{
    Mat data = Mat(2, 4, CV_32F);  //设置一个2行4列1通道的一个矩阵
    cout << "行数: " << data.rows << endl;
    cout << "列数: " << data.cols << endl;
    cout << "通道: " << data.channels() << endl;
    return 0;

输出结果:

行数: 2
列数: 4
通道: 1

2.reshape(2);

输出结果:

行数: 2
列数: 2
通道: 2

3.总结:

1.变化的恒等式:rows * cols * channels(前) =  rows * cols * channels(后)。

2.利用reshape()函数我们能够改变通道数和行数(可选),列数自动计算。

3.需要注意能否得到所需的通道数,以上述例子为例,若想要三通道则会出错。

4.实践

假设有一个 2 行 4 列的单通道矩阵,其形式如下:

1 2 3 4
5 6 7 8

试计算reshape(2)的形式?答案我放在评论区,做完看看是不是和你的答案是不是一样。

5.结束语

以上就是reshape ()函数的全部内容,希望对大家有帮助,请给我一键三连吧,您的支持是我前进的动力!


 


http://www.kler.cn/a/349974.html

相关文章:

  • 激光雷达和相机早期融合
  • 五、华为 RSTP
  • 把网站程序数据上传到服务器的方法和注意事项
  • Formality:不可读(unread)的概念
  • OpenCV:高通滤波之索贝尔、沙尔和拉普拉斯
  • 【IEEE Fellow 主讲报告| EI检索稳定】第五届机器学习与智能系统工程国际学术会议(MLISE 2025)
  • 基于Spring Boot+vue技术的导游系统设计与实现
  • 10-μA低功耗30-ppm/°C 漂移电压基准-ZCC3325替代REF33XX
  • AI开发-三方库-Hugging Face-Pipelines
  • Dirmap:一款高级Web目录文件扫描工具
  • 【Linux】Linux进程基础
  • pdf文件怎样一张纸打印四页
  • 多模态大语言模型(MLLM)-InstructBlip深度解读
  • 【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
  • 中小型医院网站:Spring Boot框架详解
  • kali chrome 安装 hackbar
  • 16年408计算机网络
  • 【动手学深度学习】6.5 汇聚层(个人向笔记)
  • 阿里云数据库导出 | 数据管理(兼容数据库备份)
  • Java->排序
  • 影刀RPA接口_查询应用主流程参数结构
  • 上半年净利下滑85%,光峰科技能否靠“上车”扭转局面?
  • oneAPI学习-使用oneAPI 实现矩阵乘法并分析性能瓶颈
  • DINODINO v2:颠覆自监督视觉特征表示学习
  • Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控
  • 力扣3158.求出出现两次数字的XOR值 python