分段故障Opencv linux c ++

时间:2017-09-28 23:00:07

标签: c++ linux opencv segmentation-fault

我在linux终端(Linux中的c ++)中编译了以下代码,并使用的是OpenCv 3.3 在服务器上以unsigned char *的形式出现图片,我将其转换为cv :: Mat,如下所示:

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

然后我尝试了两种方法将cv :: Mat转换为IplImage *,但在每种情况下都会发生分段错误。

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
}

如果有人知道解决方案?

1 个答案:

答案 0 :(得分:0)

我认为您将Mat转换为Iplimage是个问题。

我会尝试这样的事情:

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

}

有关详细信息,请尝试此Converting cv::Mat to IplImage*