2017-09-28 30 views
0

私は以下のコードをlinux端末でコンパイルしています(LinuxではC++)。OpenCv 3.3を使用しています サーバはunsigned char *形式で画像が入りますが、cv :: Mat次のようにセグメンテーションフォールトOpencv linux C++

Mat charToMat(unsigned char * bytes, int width, int height){ 
    return Mat(height, width, CV_8UC3, bytes); 
} 

をそれからIplImageへ*にCVへ変換する2つの方法::マットを試みたが、それぞれの場合に、セグメンテーションフォルトが発生します。

1の方法:

int * ft(Mat ft, int width, int height, int countA4) { 
     sourceImg = cvCreateImage(cvSize(ft.cols, ft.rows), 8, 3); 
     IplImage im = ft; 
     cvCopy(&im, sourceImg); // Segmentation Fault 
} 

2ウェイ:

int * ft (Mat ft, int width, int height, int countA4) { 
     IplImage im = ft; 
     sourceImg = cvCloneImage(&im);// Segmentation Fault 
} 

誰もが解決策を知っている場合?

答えて

0

あなたのMatをIplimageに変換することが問題だと思います。

私はこのような何かしようとするだろう:助けのためにこのConverting cv::Mat to IplImage*

+0

感謝をしてみてください詳細は

int * ft (Mat ft, int width, int height, int countA4) { IplImage* img = new IplImage(ft); sourceImg = cvCloneImage(im); 

}

を、それはまだエラーを引き起こしています –

関連する問題