OpenCV Resize Reshape
来源:互联网 发布:品茗预算软件下载 编辑:程序博客网 时间:2024/05/22 14:49
1. Mat::reshape( )
只是在逻辑上改变矩阵的行列数或者通道数,没有任何的数据的复制,也不会增减任何数据,因此这是一个O(1)的操作,它要求矩阵是连续的。
应用:在提取特征时,往往需要把特征矩阵变成一个行向量C++: Mat Mat::reshape(int cn, int rows=0 const)
cn:目标通道数,如果是0则保持和原通道数一致;
rows:目标行数,同上是0则保持不变;
改变后的矩阵要满足 rows*cols*channels 跟原数组相等,所以如果原来矩阵是单通道3*3的,调用Reshape(0,2)是会报错的,因为3*3*1不能被2*1整除。
- return feature.reshape(0,1).clone();
2. Mat::Resize( )
是改变矩阵的行数,会引起矩阵的重新分配。
C++: void Mat::resize(size_t sz)
C++: void Mat::resize(size_t sz, const Scalar& s)
sz:目标行数
s :如果sz大于原来函数,可以选择填充值
3.cv::resize( )
这个是通过插值的方式来改变图像的尺寸,貌似不支持int型的元素,uchar,float和double都可以。
C++: void resize( InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
dst的尺寸是由dsize,fx和fy决定的,与dst本身的type和size都没有关系。
当size不为0时,可以直接确定dst的大小,这时的fx和fy可以设为0;
当size为0时,fx代表宽度(列)的缩放系数,fy代表高度(行)的缩放系数,这时dsize可以写成Size(),它将默认设置为
dsize = Size(round(fx*src.cols), round(fy*src.rows));
举例说明一下:
using namespace cv;
void main()
{
cv::Mat M = (cv::Mat_<uchar>(2,3) << 1,2,3,4,5,6);//原则:先行后列 std::cout<<"原矩阵:\n"<<M<<std::endl; std::cout<<"mat::reshape:\n"<<M.reshape(0,1)<<std::endl; M.resize(2); std::cout<<"mat::resize:\n"<<M<<std::endl; cv::resize( M,M, Size(2,4) ); std::cout<<"cv::resize:\n"<<M<<std::endl;
}
结果:
[ 1, 2, 3;
4, 5, 6]
mat::reshape:
[ 1, 2, 3, 4, 5, 6]
mat::resize:
[ 1, 2, 3;
4, 5, 6]
cv::resize:
[ 1, 3;
2, 3;
3, 5;
4, 6]
- OpenCV Resize Reshape
- Resize和Reshape-opencv
- OpenCV中的Resize和Reshape
- OpenCV中的Resize和Reshape
- opencv中的reshape和resize
- OpenCV中的Resize和Reshape
- OpenCV中的Resize和Reshape不同
- OpenCV中的Resize函数和Reshape函数
- opencv reshape
- OpenCV resize()
- OpenCV Resize()
- OpenCV: resize
- tensorflow 的reshape()和resize()函数
- OpenCV中的reshape
- opencv resize一张图像
- OpenCV Resize image
- opencv resize/cvtcolor
- opencv resize函数
- Android基础——Activity相关
- Fragment
- startService与bindService的区别
- Harris角点检测原理与流程
- JavaScript中的this到底指的是什么!
- OpenCV Resize Reshape
- AlloyTouch之无限循环select插件
- 图片在IE浏览器不显示,在其他浏览器正常
- 戏说从Unigram model 到LDA再到BTM
- Tomcat Jetty容器中部署项目的注意事项与区别
- 韦东山《嵌入式Linux应用开发完全手册》配套视频教程
- 绕过XSS过滤规则 : Web渗透测试高级XSS教程
- Redis 集群规范(中文稿)(MOVED错误码及ASK错误码
- <Ejb3InAction> Sample03 for Weblogic