opencv的reshape函数的一些使用注意事项

本文探讨了Matlab与OpenCV中重塑(matrix reshape)功能的不同实现方式。Matlab按列重塑,而OpenCV按行重塑。此外,还强调了进行重塑操作前需确保矩阵连续性的需求,并提供了通过clone()方法使不连续矩阵变为连续的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)在matlab中的reshape是一列一列来的,而在opencv中mat的reshape是一行一行来的。

2)reshape要求变换对象矩阵A是连续的,可以用A.iscontinous()来判断。若不连续则无法尽心reshape,会报错。一般用经过裁剪的Mat图像,都不再连续了,如cv::Mat B = A(rect);crop_img ,cv::Mat B=A(Range(begin_row, end_row)等是不连续的Mat图像。如果想转为连续的,最简单的方法,就是将不连续的B 重新clone()一份给新的Mat。Mat C=B.clone(). 这时就可以对C进行reshape操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值