【问题标题】:Import a std::vector<Mat> to specific index of 3D cv::Mat将 std::vector<Mat> 导入 3D cv::Mat 的特定索引
【发布时间】:2022-11-13 16:00:40
【问题描述】:

我有一个 vectorimageSlices 和一个 3D :

cv::Mat RTstruct3D(3,DImensions3D, CV_8U, Scalar(0))

我想将我的向量放入 3D cv::Mat 的特定索引中。

        //Make a 3D Organ
        int programCounter = 0;
        vector<Mat>imageSlices;
        for (size_t k = 0; k < Npoint_Z.size(); k++)
        {
            Mat finalSliceImage = Mat :: zeros(DImensions3D[0], DImensions3D[1],CV_8U);
            vector<vector<int>> polies;
            for (size_t h = 0; h < Npoint_Z[k][0]; h++)
            {
                vector<int>x_y;
                x_y.push_back(ContourData[programCounter][0]); //x
                x_y.push_back(ContourData[programCounter][1]); //y
                polies.push_back(x_y);
                programCounter++;
            }
            fillPoly(finalSliceImage, polies, Scalar(0, 255, 0));
            imageSlices.push_back(finalSliceImage);
        }
        //Add Organ to RTSTRUCT 3D
        Mat RTstruct3D(3,DImensions3D, CV_8U, Scalar(0));

像这样的图像:

请帮我!谢谢。

【问题讨论】:

  • 这回答了你的问题了吗? Merging channels in OpenCV
  • @beaker 不,我不想合并它们。我只是想把它们放在一个特定的索引中。

标签: c++ visual-studio opencv


【解决方案1】:

您可以尝试使用 Mat cv::Mat::operator() ( const std::vector< Range > & ranges ) const 访问子矩阵,然后使用 Mat& cv::Mat::operator= ( const Mat & m )

例子:

int main() {
    cv::Mat m1(10, 10, CV_8U, cv::Scalar(1));
    vector<cv::Mat> v = {m1, m1, m1};
    std::array<int, 3> dims = {10, 10, 10};
    cv::Mat m2(3, dims.data(), CV_8U);
    vector<cv::Range> rV = {cv::Range(0, 1), cv::Range(0, 10), cv::Range(0, 10)};
    m2(rV.data()) = v[0];
    return 0;
}

【讨论】:

  • 请详细说明您的代码。
【解决方案2】:
        //Add Organ to RTSTRUCT 3D
        vector<Mat>RTstruct3D(DImensions3D[0], Mat(DImensions3D[1], DImensions3D[2], CV_8U));
        for (size_t i = 0; i < Npoint_Z.size(); i++)
        {
            RTstruct3D[Npoint_Z[i][1]] = imageSlices[i];
        }

【讨论】:

  • 第一次看到f 作为循环索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多