Matlab到Opencv转换问题

时间:2016-10-17 11:42:14

标签: c++ matlab opencv

AMx1

的逻辑矩阵
A = (DAL(:,K+1) == i);

如何将其转换为C ++?

1 个答案:

答案 0 :(得分:1)

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

DAL是一个矩阵(double,因为默认情况下Matlab使用双精度)MxN

Mat1d DAL = ... // MxN matrix

要在Matlab中提取K列(而不是K+1,因为Matlab是基于1的,而C ++是基于0的),您可以使用col运算符:

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

然后你可以创建一个逻辑矩阵A(在OpenCV逻辑矩阵中是uchar类型的矩阵,其值为0255):

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

columnK具有相同的尺寸,即Mx1

所以,在实践中:

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

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