如何在opencv中获取矩阵的一部分

man*_*ans 5 c++ opencv matrix

我在openCV中有这个矩阵:

  cv::Matx44d m;
Run Code Online (Sandbox Code Playgroud)

我想从这个矩阵中得到左上角的3x3矩阵.什么是最简单,最快速的方法?

我可以通过以下方式完成:

cv::Matx44d m;
cv::Matx33d o;
for(int i=0;i<3;i++)
{
    for(int j=0;j<3;j++)
    {
       o(i,j)=m(i,j);
    }
 }
Run Code Online (Sandbox Code Playgroud)

但如果它存在,我正在寻找一种更简单,更快捷的方法!

Mic*_*nov 8

Matx有一个名为get_minor()的函数,可以完全按照你的意愿执行.我没有在OpenCV的文档中看到它,但它存在于实现中.在你的情况下,它将是:

o = m.get_minor<3,3>(0,0);
Run Code Online (Sandbox Code Playgroud)

模板参数<3,3>是小矩阵的高度和宽度.值(0,0)是矩阵的裁剪起点.