Проблема преобразования Matlab в Opencv

#c #matlab #opencv

#c #matlab #opencv

Вопрос:

A является ли логическая матрица Mx1

 A = (DAL(:,K 1) == i);
 

как я могу преобразовать это в C ?

Ответ №1:

 Mat1b A = DAL.col(K) == i;
 

DAL является матрицей (of double , поскольку Matlab по умолчанию работает с удвоениями) MxN :

 Mat1d DAL = ... // MxN matrix
 

Чтобы извлечь K столбец (а не K 1 как в Matlab, потому что Matlab основан на 1, а C основан на 0), вы можете использовать col оператор:

 int K = ...
Mat1d columnK = DAL.col(K);
 

Затем вы можете создать логическую матрицу A (в OpenCV логические матрицы представляют собой матрицы типа uchar , со значениями либо 0 или 255 ) с помощью:

 int i = ...
Mat1b A = columnK == i;
 

который будет иметь тот же размер, columnK что и, т.е. Mx1 .

Итак, на практике:

 int K = ...
int i = ...
Mat1d DAL = ...

Mat1b A = DAL.col(K) == i;