Matlab 到 Opencv 的转换问题
Posted
技术标签:
【中文标题】Matlab 到 Opencv 的转换问题【英文标题】:Matlab to Opencv converion issue 【发布时间】:2016-10-17 11:42:13 【问题描述】:A
是Mx1
的逻辑矩阵
A = (DAL(:,K+1) == i);
如何将其转换为 C++?
【问题讨论】:
【参考方案1】:Mat1b A = DAL.col(K) == i;
DAL
是一个矩阵(double
,因为 Matlab 默认使用双精度数)MxN
:
Mat1d DAL = ... // MxN matrix
要提取 K
列(而不是像 Matlab 中的 K+1
,因为 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;
【讨论】:
以上是关于Matlab 到 Opencv 的转换问题的主要内容,如果未能解决你的问题,请参考以下文章