OpenCV-矩阵变形reshape
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
函数原型
cv::Mat reshape(int cn, int rows=0) const;
参数说明
reshape函数有3种重载形态,最常用的是上面所展示的这个原型,所以只介绍这个。
- int类型的cn,表示变形后的矩阵的通道数。
- int类型的rows,表示变形后的矩阵的行数。
- 返回的内容是一个cv::Mat,表示变形后的矩阵。
测试代码
#include<iostream>
#include<fstream>
#include<opencv2/opencv.hpp>using namespace std;int main()
{cv::Mat pic = cv::Mat::zeros(9, 1, CV_32FC1);for (int i = 0; i < pic.rows; i++){for (int j = 0; j < pic.cols; j++){pic.at<float>(i, j) = rand() % 255;}}// 以下变化后的矩阵行数均为3// 第一参数为0时,默认与pic同样的通道数,都是1cv::Mat result1 = pic.reshape(0, 3);// 第一参数为1时,设置result2的通道数为1cv::Mat result2 = pic.reshape(1, 3);// 第一参数为3时,设置result2的通道数为3cv::Mat result3 = pic.reshape(3, 3);// 第一个参数为2时,设置通道数为2,此时行数为3,和9不能整除,看看会发生什么//cv::Mat result4 = pic.reshape(2, 3);return 0;
}
测试效果
在result1中,通道数为0就是与pic通道数1一致的意思,所以result1和result2都是图2所示。
result3中,通道数设为3,行数也为3,那么变形后的矩阵就是一个3*1的3通道矩阵,如图3所示。
若是设置为2通道的3行矩阵,9不能整除6,就会报错;同理,如果设置3通道的3行矩阵,数据量一定是9的倍数才可以。不然就会出现如图4所示的异常中断提示。
这个函数起初我以为是输入行和列,结果后来发现第一个参数是通道数,第二个参数是行数,大意了,所以特此写篇小文章注明下,望后来者避坑。
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
OpenCV-矩阵变形reshape相关推荐
- TensorFlow学习笔记(十八)tf.reshape矩阵变形
tf.reshape(tensor, shape, name=None) 矩阵变形是常用的操作,在Tensorflow中调用方式有多种,例如: 1. tf.reshape tf.reshape(L3, ...
- opencv 学习:reshape函数
在opencv中,reshape函数比较有意思,它既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,非常有用的一个函数. 函数原型: C++: Mat Mat::reshape(int cn, in ...
- OpenCV—矩阵数据类型转换cv::convertTo
OpenCV-矩阵数据类型转换cv::convertTo 函数 [cpp] view plaincopy void convertTo( OutputArray m, int rtype, doubl ...
- OpenCV中的reshape
OpenCV中关于reshape的定义如下: reshape有两个参数: 其中,参数:cn为新的通道数,如果cn = 0,表示通道数不会改变. 参数rows为新的行数,如果rows = 0,表示行数不 ...
- OpenCV 矩阵常用操作,比如 addWeighted, flip, hconcat, reduce, merge, norm, repeat, split, sort, mulSpectrum 等
平时经常会用到一些 C++ OpenCV 矩阵 Mat 常用的函数,每次用到都要到官网去查看,现在特地整理了一下. 下面的函数均来自于 https://docs.opencv.org/master/d ...
- Numpy和Opencv中的reshape 和 transpose的区别
Numpy和Opencv中的reshape 和 transpose的区别 在Numpy和Opencv中,都有两个函数:reshape 和 transpose. 该两个函数都具有改变维度的作用,在使用中 ...
- 微信小程序动画(六):矩阵变形
种一颗树,最好的时机是十年期,而后是现在. The best time to plant a tree was twenty years ago. The second-best time is no ...
- opencv 矩阵相乘
opencv 矩阵乘法 1. dot说明: 2. Mat矩阵mul--A.mul(B) 3. opencv将整数像素图片转化为浮点型 1. dot说明: 1. 对两个向量执行点乘运算,就是对这两个向量 ...
- css3transform rotate,CSS3详解:transform [旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix]...
CSS3详解:transform [旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix] transform的属性包括:rotate() / skew() ...
最新文章
- 替换ubuntu 源
- 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件...
- 单片机c语言位运算写法,单片机与嵌入式系统中C语言的位运算小记
- dubbo+rabbitmq+hystrix实现服务的高可用
- java 标注 json_java – 注释资源以生成JSON,但在响应头中返回“text/plain”
- 计算机管理说文件缺失lnk,Win10系统右键管理打不开提示Windows找不到文件Server manager.lnk如何解决...
- python 回调函数的使用_Python回调函数用法实例详解
- 面向对象 重写和重载
- 魔兽世界插件编写-第一个插件-空插件 EmptyAddOns
- 沪深300股指破冰金融期权衍生品市场“基建”再进一步
- 1.Cookie和Session
- OPPO开放平台移动应用认领
- 微信6个新表情衍生职场好戏,『程序员』版也太太太真实了吧……
- 附件的文件夹超过了服务器,邮件附件太大发不了 这3种方式了解一下
- 首屏加载从11s到1s,详解前端性能优化
- Azure机器学习实验
- 矩阵论 - 9 - 线性无关、基、维数
- 分数指数幂计算机,分数指数幂教案
- 活动星投票午间修身自习室制作在线投票投票制作网页
- 鸿蒙智联 HarmonyOS Connect 设备首次发现过程