#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;