bugfix> c++ > 投稿

cppでOpenCvを使用する

余分なゼロをパディングすることで、指定されたMatカーネルのサイズを指定されたイメージのサイズに増やす必要があります。

Mat kernel = (Mat_<double>(3,3) <<  1.36, 0.062,  -0.921,
        -0.644198,  1.10, -0.17,
        -0.072951, -1.81485,  2.806);

これで道を見つけた役職 配列全体にゼロを埋め込むために、カーネルにも値を保存したいです。

回答 1 件
  • 以下のように簡単です。

    // this is the input image  
    cv::Mat img(100, 100, CV_64FC1);
    cv::Mat kernel = (cv::Mat_<double>(3, 3) << 1.36, 0.062, -0.921,
        -0.644198, 1.10, -0.17,
        -0.072951, -1.81485, 2.806);
    cv::Mat kernelNew = cv::Mat::zeros(img.size(), CV_64FC1);
    kernel.copyTo(kernelNew(cv::Rect(0, 0, kernel.cols, kernel.rows)));
    kernel = kernelNew;
    
    

あなたの答え