Я работаю с OpenCV и C++ для проекта, и я нашел следующую проблему: после инициализации циновки со следующего утверждениемошибка присваивания с Mat OpenCV
Mat or_mat=Mat(img->height,img->width,CV_32FC1);
проверки следующего значения
or_mat.at <float> (i, j) = atan (fy/fx)/2 +1.5707963;
После завершения возврата мата для вывода функции, но когда я иду читать, есть много значений, которые не соответствуют выходу. Точные неправильные значения для I-4.31602e +008 вставляются, и если я делаю cout
, значение выражения будет правильным. Что может быть ошибкой?
соответствующий код:
Mat or_mat=Mat(img->height,img->width,CV_32FC1);
to angle
if(fx > 0){
or_mat.at<float>(i,j) = atan(fy/fx)/2+1.5707963;
}
else if(fx<0 && fy >0){
or_mat.at<float>(i,j) = atan(fy/fx)/2+3.1415926;
}
else if(fx<0 && fy <0){
or_mat.at<float>(i,j) = atan(fy/fx)/2;
}
else if(fy!=0 && fx==0){
or_mat.at<float>(i,j) = 1.5707963;
}
Я должен вычислить локальную ориентацию изображения отпечатка пальца, следующий код я опущены несколько заявлений и расчеты, которые не имеют ошибок.
Сначала укажите канал: 'CV_32FC1' или' CV_32FC3'. И разместите соответствующий код. – Sam