2015-04-10 4 views
0

Я использую OpenCV для проверки сходства между двумя изображениями, взятыми из одной и той же среды.Функция OpenCV Mahalanobis для вычисления расстояния между двумя изображениями

У меня есть серия фотографий той же движущейся среды. Так быть А и В два бинарных изображений краев двух последовательных изображений этой среды, я делаю следующее:

Mat mean; 
mean.create(a.rows, a.cols, a.type()); 

mean += a; 
mean += b; 
mean/=2; 

Mat covar, mean; 

calcCovarMatrix(mean, covar, mean, COVAR_NORMAL | COVAR_ROWS, CV_8UC1); 

Mat icovar = covar.inv(); 

std::cout<<"type a:"<<a.type()<<"\n"; 
std::cout<<"type b:"<<b.type()<<"\n"; 
std::cout<<"icovar type:"<<icovar.type()<<"\n"; 
std::cout<<"a cols:"<<a.cols<<"\n"; 
std::cout<<"a rows:"<<a.rows<<"\n"; 
std::cout<<"b cols:"<<b.cols<<"\n"; 
std::cout<<"b rows:"<<b.rows<<"\n"; 
std::cout<<"icovar cols:"<<icovar.cols<<"\n"; 
std::cout<<"icovar rows:"<<icovar.rows<<"\n"; 

double mahalDistance = Mahalanobis(a, b, icovar); 

Матрицы все тот же тип и имеют следующие значения:

type a:5 
type b:5 
icovar type:5 
a cols:1280 
a rows:400 
b cols:1280 
b rows:400 
icovar cols:1280 
icovar rows:1280 

функция Махаланобиса расстояние выдает ошибку следующим образом:

OpenCV Error: Assertion failed (type == v2.type() && type == icovar.type() && sz == v2.size() && len == icovar.rows && len == icovar.cols) in Mahalanobis, file /Users/felipefujioka/Documents/Developer/tg/opencv-3.0.0-beta/modules/core/src/matmul.cpp, line 2486 libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /Users/felipefujioka/Documents/Developer/tg/opencv-3.0.0-beta/modules/core/src/matmul.cpp:2486: error: (-215) type == v2.type() && type == icovar.type() && sz == v2.size() && len == icovar.rows && len == icovar.cols in function Mahalanobis

Я apreciate знать, где я ошибаюсь. Заранее спасибо.

ответ

0

Вы смешиваете a с ma и b с mb в вашем коде. Вы пробовали с Mahalanobis(ma, mb, icovar)?

+0

К сожалению, есть только А и В, просто опечатке, размеры и Махаланобис вычисляется с теми же матрицами –

Смежные вопросы