0

私のコードでは、次のような画像のルートからデータを読み取りたくありません

    cv::Mat img_1 = imread("F:\1.tif");

代わりに、ポインターからデータを読み取りたい:

    float* srcImage;//pointer to image data
    cv::Mat img_1(height, width, CV_32FC1, srcImage);

しかし、この方法で、次の ORB 関数で img_1 を使用すると、機能しないことがわかりました。

    cv::ORB orb;
vector<cv::KeyPoint> keyPoints_1;
cv::Mat descriptors_1;
orb(img_1, cv::Mat(), keyPoints_1, descriptors_1);

ポインターからマットにデータを渡すにはどうすればよいですか? imread() 関数とポインターからのデータの受け渡しに違いはありますか? または、cv::ORB 関数に特別な要求はありますか?

どうもありがとう!私はOpenCVに慣れていません.数週間使い始めたばかりです.この問題を解決する必要があり、コードの残りの部分はこの部分の結果に依存します.

4

1 に答える 1

1

orb は入力として CV_32FC1 ではなく 8 ビットのグレースケール イメージを必要とします。

于 2013-08-13T06:17:22.757 に答える