【问题标题】:Is it possible to make OpenCV matricies with manual input?是否可以使用手动输入制作 OpenCV 矩阵?
【发布时间】:2020-12-22 16:24:59
【问题描述】:

我正在尝试存储四个特定点的位置,然后将其放入cv::fillPoly 函数中。目前我的位置存储在一个多维数组中,有没有办法将其转换或直接转换为它接受的格式?

int PointLocationArray[4][2] = {{point1_x, point1_y}, {point2_x, point2_y}, {point3_x, point3_y}, {point4_x, point4_y}};

我正在尝试进入:

cv::fillPoly(newRegion, PointLocationArray, 255);

【问题讨论】:

    标签: c++ opencv matrix multidimensional-array


    【解决方案1】:

    一个非常简单的方法是从一个平面数组开始,然后重塑矩阵:

    static const std::vector<double> data = { 1.0, 2.0, 1.0, 2.0 }; // two points
    Mat ret = Mat(data).reshape(2, 2);
    

    注意:这样,retdata 的包装器。如果您想复制数据,请使用Mat(data, true)

    另一种方法是使用&lt;&lt; 运算符和, 运算符的组合进行初始化,再次以平面方式提供值:

    Mat ret = (Mat_<double>(2, 2) << 1.0, 2.0, 1.0, 2.0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2023-01-07
      • 2020-10-20
      • 2013-04-26
      • 2012-05-01
      • 2019-03-24
      相关资源
      最近更新 更多