如何在 OpenCV 中将 3 x 3 单通道 Mat 转换为 1 x 3 三通道阵列?

发布于 2024-11-04 20:58:39 字数 270 浏览 0 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿嘿嘿 2024-11-11 20:58:39

使用 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文