错误:使用cvMinMaxLoc时

时间:2012-03-31 05:55:45

标签: opencv

我是opencv的新手...我想找到矩阵中的最小值..但我不知道我错在哪里...请帮助我...提前感谢...

int main(int argc,char** argv[])
{
    CvMat *mat, mathdr;
    double data[] = { 11, 12, 13, 14, 
                      21, 22, 23, 24, 
                      31, 32, 33, 34 };
        ////CvMat* orig = &cvMat( 3, 4, CV_64FC1, data );
    ///mat = cvReshape(orig,&mathdr,1,12);
    ///CvMat* mat2 = cvCreateMat(orig->cols,orig->rows,mat->type);
    ///cvTranspose(orig,mat2);
    double min_val;
    double max_val;
    cvMinMaxLoc(data,&min_val,&max_val);
    printf("Min val %f \n",min_val);
    printf("Max Val %f \n",max_val);
    return 0;
 ///cvDoubleMatPrint(orig);
}

错误是...... New_opencv.exe中0x757cd36f处的未处理异常:Microsoft C ++异常:cv ::内存位置0x002bed0c的异常..

1 个答案:

答案 0 :(得分:1)

您似乎使用了错误的参数cvMinMaxLoc。第一个参数应该是const CvArr指针,而不是float数组。

cvMinMaxLoc(data,&min_val,&max_val);

你应该从你声明的双数组中创建一个矩阵或CvArr。