35457


cv::matクラスの変数の入力データとして、char型のポインタに入っている画像データを  
MAT型のデータとして反映したいのですが、どの様にすればよいのでしょうか？  
C言語的に書くとやりたいことのイメージとしては以下のような感じです。

[code]

    // やりたいことのイメージ
    cv::Mat img;
    char *data;
    data = (char *)malloc(12345 * sizeof(char));
    memcpy(img, data, 12345);
    
[/code]

現状、データを一度ファイルに書き出して、  
img = imread(ファイルパス)としているのでこれをimdecode()など（これに限らず）を  
使っていちいちファイルに書き出さない様に改善したいと考えています。  
ご教授お願い致します。


CC BY-SA 3.0
2017-06-10T07:27:44.930
35456
2017-06-10T07:44:55.743
2017-06-10T07:35:17.540
76
20931
question
c++ opencv
char型のポインタに入っているデータをOpenCVのcv:Matの変数に反映させる方法について


> char型のポインタに入っている画像データをMAT型のデータとして反映したい  
>  JPEG形式のフォーマットになります。

JPEGデータは圧縮された画像ですから、デコードを行わないとOpenCVで扱えるデジタル画像になりません。

[code]

    char *data = /* JPEGデータ */;
    size_t len = /* JPEGデータのサイズ[byte] */;
    
    std::vector<uchar> jpeg(data, data + len);
    cv::Mat img = cv::imdecode(jpeg);
    
[/code]


CC BY-SA 3.0
2017-06-10T07:44:55.743
35457
2017-06-10T07:44:55.743
49
35456
answer