2016-05-09 110 views
0

私は配列char buf []を定義しており、Opencv Matに変換する必要があります。方法はありますか? "cv::Matchar配列の変換":と呼ばれるものは何もありませんchar配列をOpencv Matに変換する

char buf[Max_size]; 
+0

詳細を入力するとよいでしょう。なぜこれが欲しいのですか?データは何ですか?あなたは出力cv :: Matを使用するつもりです。 –

+0

私のサーバーでは、クライアントからのイメージをバイト単位で受け取っていて、char buf []の配列に格納しています。私はbuf []を、SURF関数で処理するように送信したいのですが、これはMat変数のみを受け入れます。あなたが提供したソリューションでは、その行をforループの中に入れなければなりませんか? – Electra

+0

いいえループに入れる必要はありません –

答えて

1

cv::Matは、メモリ内のイメージを表すコンテナです。それはデータを所有しているかもしれないし、そうでないかもしれない。ビットマップデータがchar配列にあるイメージを表現するためにcv::Matを作成する場合は、次のコードを使用します。あなたがイメージの行と列を知っていることをお楽しみください。

cv::Mat my_mat(rows,cols,CV_8UC1,&buf[0]); //in case of BGR image use CV_8UC3 

この場合cv::Matは、データの所有権を保持していないことに注意してください。あなたは手動でデータを削除しています。しかし、スタック配列なので、何もする必要はありません。

+0

グーグルであれば誰でも可能です。あなたのデータが 'unsigned char *'ならば、適切なコンストラクタを見つけるために、オーバーロード解決のコンストラクタ呼び出しで 'void *'にキャストする必要があります。 – oarfish

関連する問題