0

私はopencv-2.4.6を使用しており、cv::linemod機能を使用するために簡単なプログラムを実行しようとしています。

これが私のコードです:

    #include <opencv2/core/core.hpp>
    #include <opencv2/imgproc/imgproc_c.h> 
    #include <opencv2/imgproc/imgproc.hpp>
    #include <opencv2/objdetect/objdetect.hpp>
    #include <opencv2/highgui/highgui.hpp>

int main(int argc, char **argv) {

    cv::Ptr<cv::linemod::Detector> detector;
    detector = cv::linemod::getDefaultLINEMOD();

    Mat depth = imread("input/duck/duck_650_depth2.png", CV_LOAD_IMAGE_ANYCOLOR | CV_LOAD_IMAGE_ANYDEPTH);
    Mat color = imread("input/duck/duck_650_rgb2.png", CV_LOAD_IMAGE_ANYCOLOR);

    Mat object_mask = Mat(depth.rows, depth.cols, CV_32S);

    for (int x = 0; x < depth.cols; x++) {
        for (int y = 0; y < depth.rows; y++) {
            if (depth.at<int16_t>(y, x) > 0) {
                object_mask.at<int>(y, x) = 1;
            } else {
                object_mask.at<int>(y, x) = 0;
            }
        }
    }

    vector<Mat> sources;
    sources.push_back(color);
    sources.push_back(depth);
    std::string class_id = cv::format("class%d", 1);
    Mat display = color.clone();
    Rect bb;

    int template_id = detector->addTemplate(sources, class_id, object_mask, &bb);
    if (template_id != -1) {
        cout << " added template " << endl;
    }
    return 0;
}

これは正常にコンパイルされますが、実行時に次のエラーが発生します。

OpenCV Error: The function/feature is not implemented (Unsupported data type (=4)) in getMorphologyRowFilter, file /home/aly/libs/opencv-2.4.6.1/modules/imgproc/src/morph.cpp, line 894
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/aly/libs/opencv-2.4.6.1/modules/imgproc/src/morph.cpp:894: error: (-213) Unsupported data type (=4) in function getMorphologyRowFilter

私はそれが何を意味するのか本当に理解していませんか?最新のopencvバージョンを使用しています

4

1 に答える 1

2

アルゴリズムに詳しくありません。ただし、OpenCV のモルフォロジー関数でサポートされていない行列形式を使用しているため、エラー メッセージが表示されます。

CV_8U、CV_16U、CV_16S、および CV_32F のみがサポートされているようです。

追加すると問題は解決しますか

object_mask.convertTo(object_mask, CV_8U);

addTemplate関数を呼び出す前に?

于 2013-07-24T12:21:42.827 に答える