7

私はもうすぐそこにいますが、変換する方法がよくわかりません

unsigned char ** to a cv::Mat

cv::Matの.data部分がuchar*であることを知っています

私は次の形式で画像を返す関数を使用しています...

unsigned char ** output;

しかし、私のコードの残りの部分はcv::Matを使用しています。使用しているlibのソースもありませんので、実際に何をしているのかわかりません。

編集 助けてくれてありがとう、私はこれをやった...

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);
imshow("this is a test",TempMat);

しかし、画像は黒なので、実際に何かがあるかどうかを確認する必要があります。

研究不足で申し訳ありませんが、締め切りが迫っています。宿題ではありません。教授に結果を示す準備をしようとしています。

4

2 に答える 2

11

データへのポインターでMatコンストラクターを使用する必要があります。

 // constructor for matrix headers pointing to user-allocated data
    Mat(int _rows, int _cols, int _type, void* _data, size_t _step=AUTO_STEP);
    Mat(Size _size, int _type, void* _data, size_t _step=AUTO_STEP);

に変換void**してからvoid*使用する必要があります。

于 2012-11-06T17:03:53.533 に答える
1

多分あなたはで削除する必要があり*ます

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);

次のようにします。

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, output);
于 2015-09-22T09:32:17.220 に答える