我是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的异常..
答案 0 :(得分:1)
您似乎使用了错误的参数cvMinMaxLoc。第一个参数应该是const CvArr指针,而不是float数组。
cvMinMaxLoc(data,&min_val,&max_val);
你应该从你声明的双数组中创建一个矩阵或CvArr。