如何在 OpenCV 中将 3 x 3 单通道 Mat 转换为 1 x 3 三通道阵列?
我有一个 3 x 3 旋转矩阵,使用标题 cvCreateMat(3, 3, CV_32FC1)
创建。这是我通过调用 cvRodrigues2 得到的矩阵。我想旋转存储在长度为 N、具有 3 个通道的数组中的多个点。为了进行这种旋转,我调用了cvMul(rotation,points),但这要求旋转矩阵是一个数组。因此,我需要将其转换为 cvCreateMat(3, 1, CV_32FC3)
。有没有办法在 openCV 中做到这一点(在 C 中,如果有什么区别的话)。
I have a 3 by 3 rotation matrix, created with the header cvCreateMat(3, 3, CV_32FC1)
. This is the matrix I get from calling cvRodrigues2. I want to rotate several points stored in an array of length N with 3 channels. To do this rotation I call cvMul(rotation, points)
, but this requires that the rotation matrix be an array. I therfore need to convert it to a cvCreateMat(3, 1, CV_32FC3)
. Is there any way to do this in openCV (in C, if it makes any difference).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 cvReshape(文档链接)。第二个示例与您想要的非常相似(您只需调整行数和通道数)。
Using cvReshape (link to documentation). The second example is very alike to what you want (you just have to adapt the number of rows and channels).